Add version 11 of the pam-plugin-ccreds with the debian patches applied.

Signed-off-by: Richard Leitner <[email protected]>
---
 ...ke-sure-we-don-t-overflow-the-data-buffer.patch | 29 +++++++
 .../0002-add-minimum_uid-option.patch              | 97 ++++++++++++++++++++++
 ...TENSION_SO-also-for-linux-gnueabi-targets.patch | 29 +++++++
 .../recipes-extended/pam/pam-plugin-ccreds_11.bb   | 27 ++++++
 4 files changed, 182 insertions(+)
 create mode 100644 
meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-make-sure-we-don-t-overflow-the-data-buffer.patch
 create mode 100644 
meta-oe/recipes-extended/pam/pam-plugin-ccreds/0002-add-minimum_uid-option.patch
 create mode 100644 
meta-oe/recipes-extended/pam/pam-plugin-ccreds/0003-Set-EXTENSION_SO-also-for-linux-gnueabi-targets.patch
 create mode 100644 meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb

diff --git 
a/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-make-sure-we-don-t-overflow-the-data-buffer.patch
 
b/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-make-sure-we-don-t-overflow-the-data-buffer.patch
new file mode 100644
index 000000000..d7f8f5a96
--- /dev/null
+++ 
b/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-make-sure-we-don-t-overflow-the-data-buffer.patch
@@ -0,0 +1,29 @@
+From 59a95494002ce57ace17d676544101e88a55265d Mon Sep 17 00:00:00 2001
+From: Nicolas Boullis <[email protected]>
+Date: Mon, 23 Mar 2009 10:46:44 +0100
+Subject: [PATCH 1/3] make sure we don't overflow the data buffer
+
+This patch was taken from Debian's libpam-ccreds v10-6 source:
+       0001-make-sure-we-don-t-overflow-the-data-buffer.patch
+
+Reviewed-by: Richard Leitner <[email protected]>
+---
+ cc_db.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cc_db.c b/cc_db.c
+index c0e0488..9371c4d 100644
+--- a/cc_db.c
++++ b/cc_db.c
+@@ -199,7 +199,7 @@ int pam_cc_db_get(void *_db, const char *keyname, size_t 
keylength,
+               return (rc == DB_NOTFOUND) ? PAM_AUTHINFO_UNAVAIL : 
PAM_SERVICE_ERR;
+       }
+ 
+-      if (val.size < *size) {
++      if (val.size > *size) {
+               return PAM_BUF_ERR;
+       }
+ 
+-- 
+2.11.0
+
diff --git 
a/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0002-add-minimum_uid-option.patch
 
b/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0002-add-minimum_uid-option.patch
new file mode 100644
index 000000000..adc464924
--- /dev/null
+++ 
b/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0002-add-minimum_uid-option.patch
@@ -0,0 +1,97 @@
+From 21e3ab24836c5087f3531d2d3270242cea857a79 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Guido=20G=C3=BCnther?= <[email protected]>
+Date: Thu, 13 May 2010 12:36:26 +0200
+Subject: [PATCH 2/3] add minimum_uid option
+
+Closes: #580037
+
+This patch was taken from Debian's libpam-ccreds v10-6 source:
+       0002-add-minimum_uid-option.patch
+
+Reviewed-by: Richard Leitner <[email protected]>
+---
+ cc_pam.c | 39 +++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 39 insertions(+)
+
+diff --git a/cc_pam.c b/cc_pam.c
+index d096117..56776aa 100644
+--- a/cc_pam.c
++++ b/cc_pam.c
+@@ -20,6 +20,7 @@
+ #include <errno.h>
+ #include <limits.h>
+ #include <syslog.h>
++#include <pwd.h>
+ 
+ #include "cc_private.h"
+ 
+@@ -45,6 +46,30 @@ PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t *pamh,
+                               int flags, int argc, const char **argv);
+ #endif
+ 
++
++/*
++ * Given the PAM arguments and the user we're authenticating, see if we should
++ * ignore that user because they're root or have a low-numbered UID and we
++ * were configured to ignore such users.  Returns true if we should ignore
++ * them, false otherwise.
++ */
++static int
++_pamcc_should_ignore(const char *username, int minimum_uid)
++{
++      struct passwd *pwd;
++
++      if (minimum_uid > 0) {
++              pwd = getpwnam(username);
++              if (pwd != NULL && pwd->pw_uid < (unsigned long) minimum_uid) {
++                      syslog(LOG_DEBUG, "ignoring low-UID user (%lu < %d)",
++                              (unsigned long) pwd->pw_uid, minimum_uid);
++                      return 1;
++              }
++      }
++      return 0;
++}
++
++
+ static int _pam_sm_interact(pam_handle_t *pamh,
+                           int flags,
+                           const char **authtok)
+@@ -291,7 +316,9 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh,
+       unsigned int sm_flags = 0, sm_action = 0;
+       const char *ccredsfile = NULL;
+       const char *action = NULL;
++      const char *name = NULL;
+       int (*selector)(pam_handle_t *, int, unsigned int, const char *);
++      int minimum_uid = 0;
+ 
+       for (i = 0; i < argc; i++) {
+               if (strcmp(argv[i], "use_first_pass") == 0)
+@@ -300,6 +327,8 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh,
+                       sm_flags |= SM_FLAGS_TRY_FIRST_PASS;
+               else if (strcmp(argv[i], "service_specific") == 0)
+                       sm_flags |= SM_FLAGS_SERVICE_SPECIFIC;
++              else if (strncmp(argv[i], "minimum_uid=", 
sizeof("minimum_uid=") - 1) == 0)
++                      minimum_uid = atoi(argv[i] + sizeof("minimum_uid=") - 
1);
+               else if (strncmp(argv[i], "ccredsfile=", sizeof("ccredsfile=") 
- 1) == 0)
+                       ccredsfile = argv[i] + sizeof("ccredsfile=") - 1;
+               else if (strncmp(argv[i], "action=", sizeof("action=") - 1) == 
0)
+@@ -321,6 +350,16 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh,
+               syslog(LOG_ERR, "pam_ccreds: invalid action \"%s\"", action);
+       }
+ 
++      rc = pam_get_user(pamh, &name, NULL);
++      if (rc != PAM_SUCCESS || name == NULL) {
++              if (rc == PAM_CONV_AGAIN)
++                      return PAM_INCOMPLETE;
++              else
++                      return PAM_SERVICE_ERR;
++      }
++      if (_pamcc_should_ignore(name, minimum_uid))
++              return PAM_USER_UNKNOWN;
++
+       switch (sm_action) {
+       case SM_ACTION_VALIDATE_CCREDS:
+               selector = _pam_sm_validate_cached_credentials;
+-- 
+2.11.0
+
diff --git 
a/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0003-Set-EXTENSION_SO-also-for-linux-gnueabi-targets.patch
 
b/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0003-Set-EXTENSION_SO-also-for-linux-gnueabi-targets.patch
new file mode 100644
index 000000000..4f203f1a3
--- /dev/null
+++ 
b/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0003-Set-EXTENSION_SO-also-for-linux-gnueabi-targets.patch
@@ -0,0 +1,29 @@
+From 12d9bb59284bd01a9fcc3b9280698ffc23ef2ddc Mon Sep 17 00:00:00 2001
+From: Richard Leitner <[email protected]>
+Date: Fri, 1 Jun 2018 13:24:15 +0200
+Subject: [PATCH 3/3] Set EXTENSION_SO also for linux-gnueabi targets
+
+As EXTENSION_SO gets already set for linux and linux-gnu targets we
+should set it also for linux-gnueabi targets.
+
+Signed-off-by: Richard Leitner <[email protected]>
+---
+ configure.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.in b/configure.in
+index 0dbdf79..a434208 100644
+--- a/configure.in
++++ b/configure.in
+@@ -43,7 +43,7 @@ AC_SUBST(pam_ccreds_so_LD)
+ AC_SUBST(pam_ccreds_so_LDFLAGS)
+ 
+ AM_CONDITIONAL(USE_NATIVE_LINKER, test -n "$pam_ccreds_so_LD")
+-AM_CONDITIONAL(EXTENSION_SO, test "$target_os" = "linux" -o "$target_os" = 
"linux-gnu")
++AM_CONDITIONAL(EXTENSION_SO, test "$target_os" = "linux" -o "$target_os" = 
"linux-gnu" -o "$target_os" = "linux-gnueabi")
+ AM_CONDITIONAL(EXTENSION_1, test "$TARGET_OS" = "HPUX")
+ 
+ if test -z "$use_gcrypt"; then
+-- 
+2.11.0
+
diff --git a/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb 
b/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
new file mode 100644
index 000000000..ded51e3a0
--- /dev/null
+++ b/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
@@ -0,0 +1,27 @@
+SUMMARY = "PAM cached credentials module"
+HOMEPAGE = "https://www.padl.com/OSS/pam_ccreds.html";
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "libpam openssl db"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SRCREV = "376bb189ceb3a113954f1012c45be7ff09e148ba"
+
+SRC_URI = " \
+    git://github.com/PADL/pam_ccreds \
+    file://0001-make-sure-we-don-t-overflow-the-data-buffer.patch \
+    file://0002-add-minimum_uid-option.patch \
+    file://0003-Set-EXTENSION_SO-also-for-linux-gnueabi-targets.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+EXTRA_OECONF += "--libdir=${base_libdir} "
+
+FILES_${PN} += "${base_libdir}/security/pam*"
-- 
2.11.0

-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to