diff options
| -rw-r--r-- | recipes-tpm/trousers/files/get-user-ps-path-use-POSIX-getpwent-instead-of-getpwe.patch | 49 | ||||
| -rw-r--r-- | recipes-tpm/trousers/trousers_git.bb | 1 |
2 files changed, 50 insertions, 0 deletions
diff --git a/recipes-tpm/trousers/files/get-user-ps-path-use-POSIX-getpwent-instead-of-getpwe.patch b/recipes-tpm/trousers/files/get-user-ps-path-use-POSIX-getpwent-instead-of-getpwe.patch new file mode 100644 index 0000000..3f5a144 --- /dev/null +++ b/recipes-tpm/trousers/files/get-user-ps-path-use-POSIX-getpwent-instead-of-getpwe.patch | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | trousers: fix compiling with musl | ||
| 2 | |||
| 3 | use POSIX getpwent instead of getpwent_r | ||
| 4 | |||
| 5 | Upstream-Status: Submitted | ||
| 6 | |||
| 7 | Signed-off-by: Armin Kuster <akuster@mvista.com> | ||
| 8 | |||
| 9 | Index: git/src/tspi/ps/tspps.c | ||
| 10 | =================================================================== | ||
| 11 | --- git.orig/src/tspi/ps/tspps.c | ||
| 12 | +++ git/src/tspi/ps/tspps.c | ||
| 13 | @@ -66,9 +66,6 @@ get_user_ps_path(char **file) | ||
| 14 | TSS_RESULT result; | ||
| 15 | char *file_name = NULL, *home_dir = NULL; | ||
| 16 | struct passwd *pwp; | ||
| 17 | -#if (defined (__linux) || defined (linux) || defined(__GLIBC__)) | ||
| 18 | - struct passwd pw; | ||
| 19 | -#endif | ||
| 20 | struct stat stat_buf; | ||
| 21 | char buf[PASSWD_BUFSIZE]; | ||
| 22 | uid_t euid; | ||
| 23 | @@ -96,24 +93,15 @@ get_user_ps_path(char **file) | ||
| 24 | #else | ||
| 25 | setpwent(); | ||
| 26 | while (1) { | ||
| 27 | -#if (defined (__linux) || defined (linux) || defined(__GLIBC__)) | ||
| 28 | - rc = getpwent_r(&pw, buf, PASSWD_BUFSIZE, &pwp); | ||
| 29 | - if (rc) { | ||
| 30 | - LogDebugFn("USER PS: Error getting path to home directory: getpwent_r: %s", | ||
| 31 | - strerror(rc)); | ||
| 32 | - endpwent(); | ||
| 33 | - return TSPERR(TSS_E_INTERNAL_ERROR); | ||
| 34 | - } | ||
| 35 | - | ||
| 36 | -#elif (defined (__FreeBSD__) || defined (__OpenBSD__)) | ||
| 37 | if ((pwp = getpwent()) == NULL) { | ||
| 38 | LogDebugFn("USER PS: Error getting path to home directory: getpwent: %s", | ||
| 39 | strerror(rc)); | ||
| 40 | endpwent(); | ||
| 41 | +#if (defined (__FreeBSD__) || defined (__OpenBSD__)) | ||
| 42 | MUTEX_UNLOCK(user_ps_path); | ||
| 43 | +#endif | ||
| 44 | return TSPERR(TSS_E_INTERNAL_ERROR); | ||
| 45 | } | ||
| 46 | -#endif | ||
| 47 | if (euid == pwp->pw_uid) { | ||
| 48 | home_dir = strdup(pwp->pw_dir); | ||
| 49 | break; | ||
diff --git a/recipes-tpm/trousers/trousers_git.bb b/recipes-tpm/trousers/trousers_git.bb index 6671808..352374c 100644 --- a/recipes-tpm/trousers/trousers_git.bb +++ b/recipes-tpm/trousers/trousers_git.bb | |||
| @@ -14,6 +14,7 @@ SRC_URI = " \ | |||
| 14 | file://trousers.init.sh \ | 14 | file://trousers.init.sh \ |
| 15 | file://trousers-udev.rules \ | 15 | file://trousers-udev.rules \ |
| 16 | file://tcsd.service \ | 16 | file://tcsd.service \ |
| 17 | file://get-user-ps-path-use-POSIX-getpwent-instead-of-getpwe.patch \ | ||
| 17 | " | 18 | " |
| 18 | 19 | ||
| 19 | S = "${WORKDIR}/git" | 20 | S = "${WORKDIR}/git" |
