The branch, master has been updated
       via  4efe631 cmake: Remove configure check for pam_modutil_search_key
       via  beba95f Revert "pwrap: Add back pso_copy for openSUSE Tumbleweed"
      from  71253c1 libpamtest: Fix missing pam_handle argument in 
run_pamtest_conv macro

https://git.samba.org/?p=pam_wrapper.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 4efe631246d9b1475b6e8836d68e71f482493f6a
Author: Andreas Schneider <a...@samba.org>
Date:   Fri Oct 23 18:37:57 2020 +0200

    cmake: Remove configure check for pam_modutil_search_key
    
    This was just temporary for openSUSE Tumbleweed.
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Samuel Cabrero <scabr...@samba.org>

commit beba95f1eac18d08c8821be131fb879a16c692fe
Author: Andreas Schneider <a...@samba.org>
Date:   Fri Oct 23 18:37:08 2020 +0200

    Revert "pwrap: Add back pso_copy for openSUSE Tumbleweed"
    
    Tumbleweed has pam 1.4.0 now!
    
    This reverts commit 97fdcec92ee34cf061222e3d12c2624ec7ab4ff7.
    
    Reviewed-by: Samuel Cabrero <scabr...@samba.org>

-----------------------------------------------------------------------

Summary of changes:
 ConfigureChecks.cmake |   3 --
 config.h.cmake        |   1 -
 src/pam_wrapper.c     | 125 --------------------------------------------------
 3 files changed, 129 deletions(-)


Changeset truncated at 500 lines:

diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index dcf5f31..d28cf66 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -77,9 +77,6 @@ set(CMAKE_REQUIRED_LIBRARIES ${PAM_LIBRARY})
 check_function_exists(pam_syslog HAVE_PAM_SYSLOG)
 check_function_exists(pam_vsyslog HAVE_PAM_VSYSLOG)
 check_function_exists(pam_start_confdir HAVE_PAM_START_CONFDIR)
-# This is available in current PAM master and will be used as a workaround
-# till pam_start_confdir() is available.
-check_function_exists(pam_modutil_search_key HAVE_PAM_MODUTIL_SEARCH_KEY)
 unset(CMAKE_REQUIRED_LIBRARIES)
 
 # OPTIONS
diff --git a/config.h.cmake b/config.h.cmake
index 80208aa..7d6ee24 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -21,7 +21,6 @@
 #cmakedefine HAVE_PAM_VSYSLOG 1
 #cmakedefine HAVE_PAM_SYSLOG 1
 #cmakedefine HAVE_PAM_START_CONFDIR 1
-#cmakedefine HAVE_PAM_MODUTIL_SEARCH_KEY 1
 
 #cmakedefine HAVE_PAM_VPROMPT_CONST 1
 #cmakedefine HAVE_PAM_PROMPT_CONST 1
diff --git a/src/pam_wrapper.c b/src/pam_wrapper.c
index efa7cbb..da2c738 100644
--- a/src/pam_wrapper.c
+++ b/src/pam_wrapper.c
@@ -948,130 +948,6 @@ static void pwrap_init(void)
 
 #else /* HAVE_PAM_START_CONFDIR */
 
-#ifdef HAVE_PAM_MODUTIL_SEARCH_KEY
-/*
- * This is needed to workaround Tumbleweed which packages a libpam git version.
- */
-static int pso_copy(const char *src, const char *dst, const char *pdir, mode_t 
mode)
-{
-#define PSO_COPY_READ_SIZE 16
-       int srcfd = -1;
-       int dstfd = -1;
-       int rc = -1;
-       ssize_t bread, bwritten;
-       struct stat sb;
-       char buf[PSO_COPY_READ_SIZE + 1];
-       size_t pso_copy_read_size = PSO_COPY_READ_SIZE;
-       int cmp;
-       size_t to_read;
-       bool found_slash;
-
-       cmp = strcmp(src, dst);
-       if (cmp == 0) {
-               return -1;
-       }
-
-       srcfd = open(src, O_RDONLY, 0);
-       if (srcfd < 0) {
-               return -1;
-       }
-
-       if (mode == 0) {
-               rc = fstat(srcfd, &sb);
-               if (rc != 0) {
-                       rc = -1;
-                       goto out;
-               }
-               mode = sb.st_mode;
-       }
-
-       dstfd = open(dst, O_CREAT|O_WRONLY|O_TRUNC, mode);
-       if (dstfd < 0) {
-               rc = -1;
-               goto out;
-       }
-
-       found_slash = false;
-       to_read = 1;
-
-       for (;;) {
-               bread = read(srcfd, buf, to_read);
-               if (bread == 0) {
-                       /* done */
-                       break;
-               } else if (bread < 0) {
-                       errno = EIO;
-                       rc = -1;
-                       goto out;
-               }
-
-               to_read = 1;
-               if (!found_slash && buf[0] == '/') {
-                       found_slash = true;
-                       to_read = pso_copy_read_size;
-               }
-
-               if (found_slash && bread == PSO_COPY_READ_SIZE) {
-                       cmp = memcmp(buf, "usr/etc/pam.d/%s", 16);
-                       if (cmp == 0) {
-                               char tmp[16] = {0};
-
-                               snprintf(tmp, sizeof(tmp), "%s/%%s", pdir + 1);
-
-                               memcpy(buf, tmp, 12);
-                               memset(&buf[12], '\0', 4);
-
-                               /*
-                                * If we found this string, we need to reduce
-                                * the read size to not miss, the next one.
-                                */
-                               pso_copy_read_size = 13;
-                       } else {
-                               cmp = memcmp(buf, "usr/etc/pam.d", 13);
-                               if (cmp == 0) {
-                                       memcpy(buf, pdir + 1, 9);
-                                       memset(&buf[9], '\0', 4);
-                               } else {
-                                       cmp = memcmp(buf, "etc/pam.d", 9);
-                                       if (cmp == 0) {
-                                               memcpy(buf, pdir + 1, 9);
-                                       }
-                               }
-                       }
-                       found_slash = false;
-               }
-
-               bwritten = write(dstfd, buf, bread);
-               if (bwritten < 0) {
-                       errno = EIO;
-                       rc = -1;
-                       goto out;
-               }
-
-               if (bread != bwritten) {
-                       errno = EFAULT;
-                       rc = -1;
-                       goto out;
-               }
-       }
-
-       rc = 0;
-out:
-       if (srcfd != -1) {
-               close(srcfd);
-       }
-       if (dstfd != -1) {
-               close(dstfd);
-       }
-       if (rc < 0) {
-               unlink(dst);
-       }
-
-       return rc;
-#undef PSO_COPY_READ_SIZE
-}
-#else /* HAVE_PAM_MODUTIL_SEARCH_KEY */
-
 static int pso_copy(const char *src, const char *dst, const char *pdir, mode_t 
mode)
 {
 #define PSO_COPY_READ_SIZE 9
@@ -1167,7 +1043,6 @@ out:
        return rc;
 #undef PSO_COPY_READ_SIZE
 }
-#endif /* HAVE_PAM_MODUTIL_SEARCH_KEY */
 
 static void pwrap_init(void)
 {


-- 
pam wrapper repository

Reply via email to