control: tags -1 +patch +pending

Hi,

 I've found the root cause of this bug, and fixed it.
 On my local sid machine, I've tested it with edit /etc/pam.d/su
 as search pam_yubico.so, exec su and it searchs /lib/security/pam_yubico.so :)

 See below debdiff. If it seems to be okay, I'll put it into sid
 and request unblock.

diff -Nru pam-1.4.0/debian/changelog pam-1.4.0/debian/changelog
--- pam-1.4.0/debian/changelog  2021-03-16 04:01:55.000000000 +0900
+++ pam-1.4.0/debian/changelog  2021-07-06 22:09:15.000000000 +0900
@@ -1,3 +1,13 @@
+pam (1.4.0-7.1) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * debian/patches-applied/lib_security_multiarch_compat
+    - Fix regression that was introduced in 1.4.0-1, some lines were not
+      applied during refresh patch and it doesn't work.
+      (Closes: #979973, #990412)
+
+ -- Hideki Yamane <henr...@debian.org>  Tue, 06 Jul 2021 22:09:15 +0900
+
 pam (1.4.0-7) unstable; urgency=medium
 
   * Updated portuguese debconf translation, thanks Pedro Ribeiro, Closes:
diff -Nru pam-1.4.0/debian/patches-applied/lib_security_multiarch_compat 
pam-1.4.0/debian/patches-applied/lib_security_multiarch_compat
--- pam-1.4.0/debian/patches-applied/lib_security_multiarch_compat      
2021-01-31 07:09:52.000000000 +0900
+++ pam-1.4.0/debian/patches-applied/lib_security_multiarch_compat      
2021-07-06 22:09:15.000000000 +0900
@@ -11,11 +11,11 @@
 order to get everything installed where we want it and get absolute paths
 the way we want them.
 
-Index: pam/libpam/pam_handlers.c
+Index: pam-1.4.0/libpam/pam_handlers.c
 ===================================================================
---- pam.orig/libpam/pam_handlers.c
-+++ pam/libpam/pam_handlers.c
-@@ -735,7 +735,18 @@
+--- pam-1.4.0.orig/libpam/pam_handlers.c
++++ pam-1.4.0/libpam/pam_handlers.c
+@@ -735,7 +735,27 @@ _pam_load_module(pam_handle_t *pamh, con
        success = PAM_ABORT;
  
        D(("_pam_load_module: _pam_dlopen(%s)", mod_path));
@@ -31,11 +31,20 @@
 +          } else {
 +              pam_syslog(pamh, LOG_CRIT, "cannot malloc full mod path");
 +          }
++           if (!mod->dl_handle) {
++               if (asprintf(&mod_full_path, "%s/%s",
++                            _PAM_ISA, mod_path) >= 0) {
++                   mod->dl_handle = _pam_dlopen(mod_full_path);
++                   _pam_drop(mod_full_path);
++               } else {
++                   pam_syslog(pamh, LOG_CRIT, "cannot malloc full mod path");
++               }
++          }
 +      }
        D(("_pam_load_module: _pam_dlopen'ed"));
        D(("_pam_load_module: dlopen'ed"));
        if (mod->dl_handle == NULL) {
-@@ -812,7 +823,6 @@
+@@ -812,7 +832,6 @@ int _pam_add_handler(pam_handle_t *pamh
      struct handler **handler_p2;
      struct handlers *the_handlers;
      const char *sym, *sym2;
@@ -43,7 +52,7 @@
      servicefn func, func2;
      int mod_type = PAM_MT_FAULTY_MOD;
  
-@@ -824,16 +834,7 @@
+@@ -824,16 +843,7 @@ int _pam_add_handler(pam_handle_t *pamh
  
      if ((handler_type == PAM_HT_MODULE || handler_type == 
PAM_HT_SILENT_MODULE) &&
        mod_path != NULL) {

Reply via email to