diff options
author | Peter Korsgaard <peter@korsgaard.com> | 2018-09-07 13:08:31 +0200 |
---|---|---|
committer | Peter Korsgaard <peter@korsgaard.com> | 2018-09-07 13:13:17 +0200 |
commit | 721e4cbb529d247c9c1ebef68275e70a3086ae0b (patch) | |
tree | 2967ef4e10e2592661f664df4515d67dbc80cfe5 /package/trousers/0002-Check-that-getpwent_r-is-available-before-using-it.patch | |
parent | 89920e9735cb561dccf1e1f81d35788fd10a655b (diff) | |
parent | cec266ee1f708f11cc679cb4f81613fa4186003c (diff) | |
download | buildroot-721e4cbb529d247c9c1ebef68275e70a3086ae0b.tar.gz buildroot-721e4cbb529d247c9c1ebef68275e70a3086ae0b.zip |
Merge branch 'next'
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/trousers/0002-Check-that-getpwent_r-is-available-before-using-it.patch')
-rw-r--r-- | package/trousers/0002-Check-that-getpwent_r-is-available-before-using-it.patch | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/package/trousers/0002-Check-that-getpwent_r-is-available-before-using-it.patch b/package/trousers/0002-Check-that-getpwent_r-is-available-before-using-it.patch new file mode 100644 index 0000000000..ab2418c7c5 --- /dev/null +++ b/package/trousers/0002-Check-that-getpwent_r-is-available-before-using-it.patch @@ -0,0 +1,82 @@ +From 9e42c405f30d2b52d019598436ea346ef8586f43 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?No=C3=A9=20Rubinstein?= <nrubinstein@aldebaran.com> +Date: Wed, 24 Aug 2016 18:55:25 +0200 +Subject: [PATCH] Check that getpwent_r is available before using it + +This fixes building trousers with musl + +Signed-off-by: NoƩ Rubinstein <nrubinstein@aldebaran.com> +[Bernd: Rebased for version 0.3.14] +Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> +--- + configure.ac | 4 ++++ + src/tspi/ps/tspps.c | 10 +++++----- + 2 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/configure.in b/configure.in +index fd3f5f1..e3d7acf 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -145,6 +145,10 @@ else + AC_MSG_ERROR(["gtk", "openssl" and "none" are the only supported gui options for trousers]) + fi + ++# Look for getpwent_r. If it is not found, getpwent will be used instead, with ++# an additional mutex. ++AC_CHECK_FUNC(getpwent_r, [AC_DEFINE(HAVE_GETPWENT_R)]) ++ + # + # The default port that the TCS daemon listens on + # +diff --git a/src/tspi/ps/tspps.c b/src/tspi/ps/tspps.c +index c6f9c3d..9d00d2a 100644 +--- a/src/tspi/ps/tspps.c ++++ b/src/tspi/ps/tspps.c +@@ -45,7 +45,7 @@ + + static int user_ps_fd = -1; + static MUTEX_DECLARE_INIT(user_ps_lock); +-#if (defined (__FreeBSD__) || defined (__OpenBSD__)) ++#ifndef HAVE_GETPWENT_R + static MUTEX_DECLARE_INIT(user_ps_path); + #endif + static struct flock fl; +@@ -60,7 +60,7 @@ 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__)) ++#ifdef HAVE_GETPWENT_R + struct passwd pw; + #endif + struct stat stat_buf; +@@ -72,7 +72,7 @@ get_user_ps_path(char **file) + *file = strdup(file_name); + return (*file) ? TSS_SUCCESS : TSPERR(TSS_E_OUTOFMEMORY); + } +-#if (defined (__FreeBSD__) || defined (__OpenBSD__)) ++#ifndef HAVE_GETPWENT_R + MUTEX_LOCK(user_ps_path); + #endif + +@@ -90,7 +90,7 @@ get_user_ps_path(char **file) + #else + setpwent(); + while (1) { +-#if (defined (__linux) || defined (linux) || defined(__GLIBC__)) ++#ifdef HAVE_GETPWENT_R + rc = getpwent_r(&pw, buf, PASSWD_BUFSIZE, &pwp); + if (rc) { + LogDebugFn("USER PS: Error getting path to home directory: getpwent_r: %s", +@@ -99,7 +99,7 @@ get_user_ps_path(char **file) + return TSPERR(TSS_E_INTERNAL_ERROR); + } + +-#elif (defined (__FreeBSD__) || defined (__OpenBSD__)) ++#else + if ((pwp = getpwent()) == NULL) { + LogDebugFn("USER PS: Error getting path to home directory: getpwent: %s", + strerror(rc)); +-- +2.1.4 + |