From 1af4bb56195d25b63c59f61dbb489577166da043 Mon Sep 17 00:00:00 2001 From: midipix Date: Jan 25 2024 15:41:45 +0000 Subject: slbt_get_archive_meta(): properly special-case the /SYM64/ member name. --- diff --git a/src/arbits/slbt_archive_meta.c b/src/arbits/slbt_archive_meta.c index f87d262..5b6874f 100644 --- a/src/arbits/slbt_archive_meta.c +++ b/src/arbits/slbt_archive_meta.c @@ -706,6 +706,18 @@ int slbt_get_archive_meta( arlongnames = arhdr; + /* the /SYM64/ string must be special cased, also below when it gets copied */ + } else if (!strncmp(arhdr->ar_file_id,"/SYM64/",7)) { + for (ch=&arhdr->ar_file_id[7]; char_file_id[0] == '/') { if (slbt_ar_read_decimal_64( @@ -872,6 +884,16 @@ int slbt_get_archive_meta( *longnamep++ = '/'; longnamep++; + } else if ((arhdr->ar_file_id[0] == '/') && (arhdr->ar_file_id[1] == 'S')) { + *longnamep++ = '/'; + *longnamep++ = 'S'; + *longnamep++ = 'Y'; + *longnamep++ = 'M'; + *longnamep++ = '6'; + *longnamep++ = '4'; + *longnamep++ = '/'; + longnamep++; + } else if (arhdr->ar_file_id[0] == '/') { *longnamep++ = '/'; longnamep++;