1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-26 09:46:09 +00:00

security/oath-toolkit: update to 2.6.7 release

This commit is contained in:
Alex Dupre 2022-01-31 13:18:03 +01:00
parent 31e7b4d0c1
commit cf4f63cf4a
11 changed files with 212 additions and 4 deletions

View File

@ -1,17 +1,25 @@
# Created by: Alex Dupre <ale@FreeBSD.org>
PORTNAME= oath-toolkit
PORTVERSION= 2.6.2
PORTVERSION= 2.6.7
CATEGORIES= security
MASTER_SITES= SAVANNAH
MAINTAINER= ale@FreeBSD.org
COMMENT= Library, tools, and PAM module for OATH authentication
LICENSE= GPLv3+ LGPL20+
LICENSE_COMB= multi
LIB_DEPENDS= libltdl.so:devel/libltdl
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --with-html-dir=${DOCSDIR}
USES= gmake libtool pathfix pkgconfig
USE_GNOME= libxslt
USE_LDCONFIG= yes
INSTALL_TARGET= install-strip
TEST_TARGET= check
OPTIONS_DEFINE= PSKC DOCS
OPTIONS_DEFAULT=PSKC

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1472638195
SHA256 (oath-toolkit-2.6.2.tar.gz) = b03446fa4b549af5ebe4d35d7aba51163442d255660558cd861ebce536824aa0
SIZE (oath-toolkit-2.6.2.tar.gz) = 4295786
TIMESTAMP = 1643620380
SHA256 (oath-toolkit-2.6.7.tar.gz) = 36eddfce8f2f36347fb257dbf878ba0303a2eaafe24eaa071d5cd302261046a9
SIZE (oath-toolkit-2.6.7.tar.gz) = 5625279

View File

@ -0,0 +1,11 @@
--- liboath/tests/tst_basic.c.orig 2022-01-31 11:26:43 UTC
+++ liboath/tests/tst_basic.c
@@ -57,7 +57,7 @@ main (void)
return 1;
}
- if (OATH_VERSION_NUMBER < 0x02060300 || OATH_VERSION_NUMBER >= 0x03000000)
+ if (OATH_VERSION_NUMBER < 0x02060200 || OATH_VERSION_NUMBER >= 0x03000000)
{
printf ("OATH_VERSION_NUMBER out of range?!\n");
return 1;

View File

@ -0,0 +1,20 @@
--- liboath/tests/tst_totp_validate.c.orig 2022-01-31 11:03:27 UTC
+++ liboath/tests/tst_totp_validate.c
@@ -156,7 +156,7 @@ main (void)
}
if (otp_counter != tv[i].otp_counter)
{
- printf ("validate3 loop %ld failed (counter %d != %d)?!\n",
+ printf ("validate3 loop %ld failed (counter %ld != %ld)?!\n",
i, otp_counter, tv[i].otp_counter);
return 1;
}
@@ -184,7 +184,7 @@ main (void)
}
if (otp_counter != tv[i].otp_counter)
{
- printf ("validate3_callback loop %ld failed (counter %d != %d)?!\n",
+ printf ("validate3_callback loop %ld failed (counter %ld != %ld)?!\n",
i, otp_counter, tv[i].otp_counter);
return 1;
}

View File

@ -0,0 +1,11 @@
--- libpskc/tests/tst_basic.c.orig 2022-01-31 11:38:13 UTC
+++ libpskc/tests/tst_basic.c
@@ -70,7 +70,7 @@ main (void)
return 1;
}
- if (PSKC_VERSION_NUMBER < 0x02060300 || PSKC_VERSION_NUMBER >= 0x03000000)
+ if (PSKC_VERSION_NUMBER < 0x02060200 || PSKC_VERSION_NUMBER >= 0x03000000)
{
printf ("PSKC_VERSION_NUMBER out of range?!\n");
return 1;

View File

@ -0,0 +1,11 @@
--- pam_oath/Makefile.in.orig 2022-01-31 11:17:51 UTC
+++ pam_oath/Makefile.in
@@ -414,7 +414,7 @@ AM_CPPFLAGS = -I$(builddir)/../liboath
EXTRA_DIST = README
pammoddir = $(PAMDIR)
pammod_LTLIBRARIES = pam_oath.la
-pam_oath_la_SOURCES = pam_oath.c
+pam_oath_la_SOURCES = pam_oath.c pam_modutil.c pam_modutil.h
# XXX add -Wl,-x too? PAM documentation suggests it.
pam_oath_la_LIBADD = ../liboath/liboath.la
pam_oath_la_LDFLAGS = -module -avoid-version

View File

@ -0,0 +1,11 @@
--- pam_oath/configure.orig 2022-01-31 11:20:05 UTC
+++ pam_oath/configure
@@ -12156,8 +12156,6 @@ if test "x$ac_cv_header_security_pam_modutil_h" = xyes
#define HAVE_SECURITY_PAM_MODUTIL_H 1
_ACEOF
-else
- as_fn_error $? "PAM header files not found, install libpam-dev." "$LINENO" 5
fi
done

View File

@ -0,0 +1,85 @@
--- pam_oath/pam_modutil.c.orig 2022-01-31 11:03:40 UTC
+++ pam_oath/pam_modutil.c
@@ -0,0 +1,82 @@
+#include <config.h>
+
+#ifndef HAVE_SECURITY_PAM_MODUTIL_H
+
+#include "pam_modutil.h"
+
+#ifdef HAVE_SECURITY_PAM_APPL_H
+#include <security/pam_appl.h>
+#endif
+#ifdef HAVE_SECURITY_PAM_MODULES_H
+#include <security/pam_modules.h>
+#endif
+
+#include <errno.h>
+#include <pwd.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#define PWD_INITIAL_LENGTH 0x400
+#define PWD_ABSURD_PWD_LENGTH 0x4000
+
+void _pam_modutil_cleanup(pam_handle_t *pamh, void *data, int error_status) {
+ if (data) {
+ (void) free(data);
+ }
+}
+
+struct passwd *pam_modutil_getpwnam(pam_handle_t *pamh, const char *user) {
+ void *buffer = NULL;
+ size_t length = PWD_INITIAL_LENGTH;
+ long sc_init_length = sysconf(_SC_GETPW_R_SIZE_MAX);
+
+ if (sc_init_length != -1 && sc_init_length < PWD_ABSURD_PWD_LENGTH) {
+ length = (size_t) sc_init_length;
+ }
+
+ do {
+ int status;
+ void *new_buffer;
+ struct passwd *result = NULL;
+
+ new_buffer = realloc(buffer, sizeof(struct passwd) + length);
+ if (new_buffer == NULL) {
+ // out of memory
+ if (buffer) {
+ free(buffer);
+ }
+ return NULL;
+ }
+ buffer = new_buffer;
+
+ status = getpwnam_r(user, buffer,
+ sizeof(struct passwd) + (char *) buffer,
+ length, &result);
+ if (!status && result) {
+ status = pam_set_data(pamh, "_pammodutil_getpwnam", result,
+ _pam_modutil_cleanup);
+ if (status == PAM_SUCCESS) {
+ return result;
+ }
+ // unable to set data item
+ free(buffer);
+ return NULL;
+ }
+ if (status != ERANGE) {
+ // no matching record found (if status == 0)
+ // or getpwnam_r encountered an error
+ free(buffer);
+ return NULL;
+ }
+
+ length <<= 1;
+ } while (length < PWD_ABSURD_PWD_LENGTH);
+
+ // exceeded maximum buffer size
+ free(buffer);
+ return NULL;
+}
+#else
+typedef int make_iso_compilers_happy;
+#endif /* HAVE_SECURITY_PAM_MODUTIL_H */

View File

@ -0,0 +1,20 @@
--- pam_oath/pam_modutil.h.orig 2022-01-31 11:03:40 UTC
+++ pam_oath/pam_modutil.h
@@ -0,0 +1,17 @@
+#ifndef PAM_MODUTIL_H
+#define PAM_MODUTIL_H
+
+#ifdef HAVE_SECURITY_PAM_MODUTIL_H
+#include <security/pam_modutil.h>
+#else
+
+#ifdef HAVE_SECURITY_PAM_MODULES_H
+#include <security/pam_modules.h>
+#endif
+
+#include <pwd.h>
+
+struct passwd *pam_modutil_getpwnam(pam_handle_t *pamh, const char *user);
+
+#endif
+#endif

View File

@ -0,0 +1,20 @@
--- pam_oath/pam_oath.c.orig 2021-05-01 17:10:32 UTC
+++ pam_oath/pam_oath.c
@@ -21,6 +21,7 @@
#include <config.h>
#include "oath.h"
+#include "pam_modutil.h"
#include <stdio.h>
#include <stdlib.h>
@@ -42,9 +43,6 @@
#ifdef HAVE_SECURITY_PAM_APPL_H
#include <security/pam_appl.h>
-#endif
-#ifdef HAVE_SECURITY_PAM_MODUTIL_H
-#include <security/pam_modutil.h>
#endif
#ifdef HAVE_SECURITY_PAM_MODULES_H
#include <security/pam_modules.h>

View File

@ -0,0 +1,11 @@
--- pam_oath/tests/Makefile.in.orig 2022-01-31 12:02:54 UTC
+++ pam_oath/tests/Makefile.in
@@ -102,7 +102,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-TESTS = test-pam_oath$(EXEEXT) $(am__append_1)
+TESTS = $(am__append_1)
@ROOT_TESTS_TRUE@am__append_1 = run-root-tests.sh
subdir = tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4