trousers: fix compiling with musl use POSIX getpwent instead of getpwent_r Upstream-Status: Submitted Signed-off-by: Armin Kuster Index: git/src/tspi/ps/tspps.c =================================================================== --- git.orig/src/tspi/ps/tspps.c +++ git/src/tspi/ps/tspps.c @@ -66,9 +66,6 @@ get_user_ps_path(char **file) TSS_RESULT result; char *file_name = NULL, *home_dir = NULL; struct passwd *pwp; -#if (defined (__linux) || defined (linux) || defined(__GLIBC__)) - struct passwd pw; -#endif struct stat stat_buf; char buf[PASSWD_BUFSIZE]; uid_t euid; @@ -96,24 +93,15 @@ get_user_ps_path(char **file) #else setpwent(); while (1) { -#if (defined (__linux) || defined (linux) || defined(__GLIBC__)) - rc = getpwent_r(&pw, buf, PASSWD_BUFSIZE, &pwp); - if (rc) { - LogDebugFn("USER PS: Error getting path to home directory: getpwent_r: %s", - strerror(rc)); - endpwent(); - return TSPERR(TSS_E_INTERNAL_ERROR); - } - -#elif (defined (__FreeBSD__) || defined (__OpenBSD__)) if ((pwp = getpwent()) == NULL) { LogDebugFn("USER PS: Error getting path to home directory: getpwent: %s", strerror(rc)); endpwent(); +#if (defined (__FreeBSD__) || defined (__OpenBSD__)) MUTEX_UNLOCK(user_ps_path); +#endif return TSPERR(TSS_E_INTERNAL_ERROR); } -#endif if (euid == pwp->pw_uid) { home_dir = strdup(pwp->pw_dir); break;