summaryrefslogtreecommitdiff
path: root/debian/patches-applied/no_pthread_mutexes
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-applied/no_pthread_mutexes')
-rw-r--r--debian/patches-applied/no_pthread_mutexes205
1 files changed, 205 insertions, 0 deletions
diff --git a/debian/patches-applied/no_pthread_mutexes b/debian/patches-applied/no_pthread_mutexes
new file mode 100644
index 00000000..8983e11e
--- /dev/null
+++ b/debian/patches-applied/no_pthread_mutexes
@@ -0,0 +1,205 @@
+Don't use pthread mutexes in libpam unnecessarily; this avoids linking
+problems on non-Linux platforms.
+
+Authors: Steve Langasek <vorlon@debian.org>
+
+Upstream status: committed to CVS
+
+Index: pam/Linux-PAM/libpam/pam_modutil_getgrgid.c
+===================================================================
+--- pam.orig/Linux-PAM/libpam/pam_modutil_getgrgid.c
++++ pam/Linux-PAM/libpam/pam_modutil_getgrgid.c
+@@ -12,20 +12,9 @@
+ #include <errno.h>
+ #include <limits.h>
+ #include <grp.h>
+-#include <pthread.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+
+-static pthread_mutex_t _pammodutil_mutex = PTHREAD_MUTEX_INITIALIZER;
+-static void _pammodutil_lock(void)
+-{
+- pthread_mutex_lock(&_pammodutil_mutex);
+-}
+-static void _pammodutil_unlock(void)
+-{
+- pthread_mutex_unlock(&_pammodutil_mutex);
+-}
+-
+ static int intlen(int number)
+ {
+ int len = 2;
+@@ -95,13 +84,11 @@
+ for (i = 0; i < INT_MAX; i++) {
+ sprintf(data_name, "_pammodutil_getgrgid_%ld_%d",
+ (long) gid, i);
+- _pammodutil_lock();
+ status = PAM_NO_MODULE_DATA;
+ if (pam_get_data(pamh, data_name, &ignore) != PAM_SUCCESS) {
+ status = pam_set_data(pamh, data_name,
+ result, pam_modutil_cleanup);
+ }
+- _pammodutil_unlock();
+ if (status == PAM_SUCCESS) {
+ break;
+ }
+Index: pam/Linux-PAM/libpam/pam_modutil_getgrnam.c
+===================================================================
+--- pam.orig/Linux-PAM/libpam/pam_modutil_getgrnam.c
++++ pam/Linux-PAM/libpam/pam_modutil_getgrnam.c
+@@ -12,20 +12,9 @@
+ #include <errno.h>
+ #include <limits.h>
+ #include <grp.h>
+-#include <pthread.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+
+-static pthread_mutex_t _pammodutil_mutex = PTHREAD_MUTEX_INITIALIZER;
+-static void _pammodutil_lock(void)
+-{
+- pthread_mutex_lock(&_pammodutil_mutex);
+-}
+-static void _pammodutil_unlock(void)
+-{
+- pthread_mutex_unlock(&_pammodutil_mutex);
+-}
+-
+ static int intlen(int number)
+ {
+ int len = 2;
+@@ -84,13 +73,11 @@
+ if (pamh != NULL) {
+ for (i = 0; i < INT_MAX; i++) {
+ sprintf(data_name, "_pammodutil_getgrnam_%s_%d", group, i);
+- _pammodutil_lock();
+ status = PAM_NO_MODULE_DATA;
+ if (pam_get_data(pamh, data_name, &ignore) != PAM_SUCCESS) {
+ status = pam_set_data(pamh, data_name,
+ result, pam_modutil_cleanup);
+ }
+- _pammodutil_unlock();
+ if (status == PAM_SUCCESS) {
+ break;
+ }
+Index: pam/Linux-PAM/libpam/pam_modutil_getpwnam.c
+===================================================================
+--- pam.orig/Linux-PAM/libpam/pam_modutil_getpwnam.c
++++ pam/Linux-PAM/libpam/pam_modutil_getpwnam.c
+@@ -11,21 +11,10 @@
+
+ #include <errno.h>
+ #include <limits.h>
+-#include <pthread.h>
+ #include <pwd.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+
+-static pthread_mutex_t _pammodutil_mutex = PTHREAD_MUTEX_INITIALIZER;
+-static void _pammodutil_lock(void)
+-{
+- pthread_mutex_lock(&_pammodutil_mutex);
+-}
+-static void _pammodutil_unlock(void)
+-{
+- pthread_mutex_unlock(&_pammodutil_mutex);
+-}
+-
+ static int intlen(int number)
+ {
+ int len = 2;
+@@ -84,13 +73,11 @@
+ if (pamh != NULL) {
+ for (i = 0; i < INT_MAX; i++) {
+ sprintf(data_name, "_pammodutil_getpwnam_%s_%d", user, i);
+- _pammodutil_lock();
+ status = PAM_NO_MODULE_DATA;
+ if (pam_get_data(pamh, data_name, &ignore) != PAM_SUCCESS) {
+ status = pam_set_data(pamh, data_name,
+ result, pam_modutil_cleanup);
+ }
+- _pammodutil_unlock();
+ if (status == PAM_SUCCESS) {
+ break;
+ }
+Index: pam/Linux-PAM/libpam/pam_modutil_getpwuid.c
+===================================================================
+--- pam.orig/Linux-PAM/libpam/pam_modutil_getpwuid.c
++++ pam/Linux-PAM/libpam/pam_modutil_getpwuid.c
+@@ -11,21 +11,10 @@
+
+ #include <errno.h>
+ #include <limits.h>
+-#include <pthread.h>
+ #include <pwd.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+
+-static pthread_mutex_t _pammodutil_mutex = PTHREAD_MUTEX_INITIALIZER;
+-static void _pammodutil_lock(void)
+-{
+- pthread_mutex_lock(&_pammodutil_mutex);
+-}
+-static void _pammodutil_unlock(void)
+-{
+- pthread_mutex_unlock(&_pammodutil_mutex);
+-}
+-
+ static int intlen(int number)
+ {
+ int len = 2;
+@@ -95,13 +84,11 @@
+ for (i = 0; i < INT_MAX; i++) {
+ sprintf(data_name, "_pammodutil_getpwuid_%ld_%d",
+ (long) uid, i);
+- _pammodutil_lock();
+ status = PAM_NO_MODULE_DATA;
+ if (pam_get_data(pamh, data_name, &ignore) != PAM_SUCCESS) {
+ status = pam_set_data(pamh, data_name,
+ result, pam_modutil_cleanup);
+ }
+- _pammodutil_unlock();
+ if (status == PAM_SUCCESS) {
+ break;
+ }
+Index: pam/Linux-PAM/libpam/pam_modutil_getspnam.c
+===================================================================
+--- pam.orig/Linux-PAM/libpam/pam_modutil_getspnam.c
++++ pam/Linux-PAM/libpam/pam_modutil_getspnam.c
+@@ -11,21 +11,10 @@
+
+ #include <errno.h>
+ #include <limits.h>
+-#include <pthread.h>
+ #include <shadow.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+
+-static pthread_mutex_t _pammodutil_mutex = PTHREAD_MUTEX_INITIALIZER;
+-static void _pammodutil_lock(void)
+-{
+- pthread_mutex_lock(&_pammodutil_mutex);
+-}
+-static void _pammodutil_unlock(void)
+-{
+- pthread_mutex_unlock(&_pammodutil_mutex);
+-}
+-
+ static int intlen(int number)
+ {
+ int len = 2;
+@@ -84,13 +73,11 @@
+ if (pamh != NULL) {
+ for (i = 0; i < INT_MAX; i++) {
+ sprintf(data_name, "_pammodutil_getspnam_%s_%d", user, i);
+- _pammodutil_lock();
+ status = PAM_NO_MODULE_DATA;
+ if (pam_get_data(pamh, data_name, &ignore) != PAM_SUCCESS) {
+ status = pam_set_data(pamh, data_name,
+ result, pam_modutil_cleanup);
+ }
+- _pammodutil_unlock();
+ if (status == PAM_SUCCESS) {
+ break;
+ }