diff options
Diffstat (limited to 'sys-apps/accountsservice/files/musl-fgetspent_r.patch')
-rw-r--r-- | sys-apps/accountsservice/files/musl-fgetspent_r.patch | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/sys-apps/accountsservice/files/musl-fgetspent_r.patch b/sys-apps/accountsservice/files/musl-fgetspent_r.patch deleted file mode 100644 index 3b5cc803..00000000 --- a/sys-apps/accountsservice/files/musl-fgetspent_r.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: https://git.alpinelinux.org/aports/tree/community/accountsservice - -diff --git a/src/daemon.c b/src/daemon.c -index 312394a..e7b3c58 100644 ---- a/src/daemon.c -+++ b/src/daemon.c -@@ -140,6 +140,28 @@ error_get_type (void) - #define MAX_LOCAL_USERS 50 - #endif - -+#ifndef __GLIBC__ -+ /* Musl libc does not support fgetspent_r(), write own -+ * wrapper -+ */ -+static int fgetspent_r(FILE *fp, struct spwd *spbuf, char *buf, size_t buflen, struct spwd **spbufp) { -+ struct spwd *shadow_entry = fgetspent(fp); -+ if(!shadow_entry) -+ return -1; -+ size_t namplen = strlen(shadow_entry->sp_namp); -+ size_t pwdplen = strlen(shadow_entry->sp_pwdp); -+ -+ if(namplen + pwdplen + 2 > buflen) -+ return -1; -+ -+ *spbufp = memcpy(spbuf, shadow_entry, sizeof(struct spwd)); -+ spbuf->sp_namp = strncpy(buf, shadow_entry->sp_namp, namplen + 1); -+ spbuf->sp_pwdp = strncpy(buf + namplen + 1, shadow_entry->sp_pwdp, pwdplen + 1); -+ -+ return 0; -+} -+#endif -+ - static struct passwd * - entry_generator_fgetpwent (Daemon *daemon, - GHashTable *users, |