diff --git a/Utilities/cmlibarchive/libarchive/archive_read_disk_set_standard_lookup.c b/Utilities/cmlibarchive/libarchive/archive_read_disk_set_standard_lookup.c index 5ef4662e6..57d8228e5 100644 --- a/Utilities/cmlibarchive/libarchive/archive_read_disk_set_standard_lookup.c +++ b/Utilities/cmlibarchive/libarchive/archive_read_disk_set_standard_lookup.c @@ -199,6 +199,7 @@ lookup_uname_helper(struct name_cache *cache, id_t id) if (cache->buff == NULL) return (NULL); for (;;) { + result = &pwent; /* Old getpwuid_r ignores last argument. */ r = getpwuid_r((uid_t)id, &pwent, cache->buff, cache->buff_size, &result); if (r == 0) @@ -247,6 +248,7 @@ lookup_gname_helper(struct name_cache *cache, id_t id) if (cache->buff == NULL) return (NULL); for (;;) { + result = &grent; /* Old getgrgid_r ignores last argument. */ r = getgrgid_r((gid_t)id, &grent, cache->buff, cache->buff_size, &result); if (r == 0) diff --git a/Utilities/cmlibarchive/libarchive/archive_write_disk_set_standard_lookup.c b/Utilities/cmlibarchive/libarchive/archive_write_disk_set_standard_lookup.c index d83ac18e8..2869fb202 100644 --- a/Utilities/cmlibarchive/libarchive/archive_write_disk_set_standard_lookup.c +++ b/Utilities/cmlibarchive/libarchive/archive_write_disk_set_standard_lookup.c @@ -129,6 +129,7 @@ lookup_gid(void *private_data, const char *gname, gid_t gid) int r; for (;;) { + result = &grent; /* Old getgrnam_r ignores last argument. */ r = getgrnam_r(gname, &grent, buffer, bufsize, &result); if (r == 0) break; @@ -188,6 +189,7 @@ lookup_uid(void *private_data, const char *uname, uid_t uid) int r; for (;;) { + result = &pwent; /* Old getpwnam_r ignores last argument. */ r = getpwnam_r(uname, &pwent, buffer, bufsize, &result); if (r == 0) break;