summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.bin/make/arch.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/usr.bin/make/arch.c b/usr.bin/make/arch.c
index 70c5d95..775e0b2 100644
--- a/usr.bin/make/arch.c
+++ b/usr.bin/make/arch.c
@@ -458,26 +458,22 @@ ArchStatMember(const char *archive, const char *member, Boolean hash)
ln = Lst_Find(&archives, archive, ArchFindArchive);
if (ln != NULL) {
+ char copy[AR_MAX_NAME_LEN + 1];
+
ar = Lst_Datum(ln);
he = Hash_FindEntry(&ar->members, member);
-
if (he != NULL) {
- return ((struct ar_hdr *)Hash_GetValue (he));
- } else {
- /* Try truncated name */
- char copy[AR_MAX_NAME_LEN + 1];
- size_t len = strlen(member);
-
- if (len > AR_MAX_NAME_LEN) {
- len = AR_MAX_NAME_LEN;
- strncpy(copy, member, AR_MAX_NAME_LEN);
- copy[AR_MAX_NAME_LEN] = '\0';
- }
- if ((he = Hash_FindEntry(&ar->members, copy)) != NULL)
- return (Hash_GetValue(he));
- return (NULL);
+ return (Hash_GetValue(he));
}
+
+ /* Try truncated name */
+ strncpy(copy, member, AR_MAX_NAME_LEN);
+ copy[AR_MAX_NAME_LEN] = '\0';
+
+ if ((he = Hash_FindEntry(&ar->members, copy)) != NULL)
+ return (Hash_GetValue(he));
+ return (NULL);
}
if (!hash) {
OpenPOWER on IntegriCloud