Don't use pthread mutexes in libpam unnecessarily; this avoids linking problems on non-Linux platforms. Authors: Steve Langasek 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 #include #include -#include #include #include -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 #include #include -#include #include #include -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 #include -#include #include #include #include -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 #include -#include #include #include #include -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 #include -#include #include #include #include -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; }