diff options
Diffstat (limited to 'src/arbits')
-rw-r--r-- | src/arbits/slbt_archive_merge.c | 8 | ||||
-rw-r--r-- | src/arbits/slbt_archive_store.c | 8 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/arbits/slbt_archive_merge.c b/src/arbits/slbt_archive_merge.c index 5f29235..5ace063 100644 --- a/src/arbits/slbt_archive_merge.c +++ b/src/arbits/slbt_archive_merge.c @@ -180,6 +180,8 @@ int slbt_ar_merge_archives( int64_t osymrefs; int64_t onamestrs; int64_t omemfixup; + int64_t atint; + int64_t aroff; char * base; unsigned char * ubase; @@ -359,7 +361,7 @@ int slbt_ar_merge_archives( memcpy(arhdr,armap->ar_member_data,sizeof(*arhdr)+sarname); nwritten = armap->ar_file_header.ar_time_date_stamp - ? sprintf(arhdr->ar_time_date_stamp,PPRII64,time(0)) + ? sprintf(arhdr->ar_time_date_stamp,PPRII64,(atint = time(0))) : 0; if (nwritten < 0) @@ -401,7 +403,7 @@ int slbt_ar_merge_archives( memcpy(arhdr,arnames->ar_member_data,sizeof(*arhdr)); nwritten = arnames->ar_file_header.ar_time_date_stamp - ? sprintf(arhdr->ar_time_date_stamp,PPRII64,time(0)) + ? sprintf(arhdr->ar_time_date_stamp,PPRII64,(atint = time(0))) : 0; if (nwritten < 0) @@ -591,7 +593,7 @@ int slbt_ar_merge_archives( if (meminfo->ar_file_header.ar_header_attr & AR_HEADER_ATTR_NAME_REF) { nwritten = sprintf( &base[omembers],"/"PPRII64, - namestr - namebase); + (aroff = namestr - namebase)); if (nwritten < 0) SLBT_SYSTEM_ERROR(dctx,0); diff --git a/src/arbits/slbt_archive_store.c b/src/arbits/slbt_archive_store.c index d09a3f0..e303cb7 100644 --- a/src/arbits/slbt_archive_store.c +++ b/src/arbits/slbt_archive_store.c @@ -41,6 +41,8 @@ int slbt_ar_store_archive( struct stat st; int fdat; int fdtmp; + int64_t tint; + int64_t stino; void * addr; char * mark; char * slash; @@ -74,6 +76,7 @@ int slbt_ar_store_archive( fdat = slbt_driver_fdcwd(dctx); addr = buf; + tint = time(0); mark = (slash = strrchr(buf,'/')) ? slash : buf; @@ -89,6 +92,7 @@ int slbt_ar_store_archive( dctx,0); } + stino = st.st_ino; buflen = sizeof(buf) - (mark - buf); nbytes = snprintf( mark, @@ -99,8 +103,8 @@ int slbt_ar_store_archive( ".salt.%p" ".pid.%d" ".tmp", - st.st_ino, - time(0),addr, + stino, + tint,addr, getpid()); if (nbytes >= buflen) |