summaryrefslogtreecommitdiffhomepage
path: root/src/arbits
diff options
context:
space:
mode:
Diffstat (limited to 'src/arbits')
-rw-r--r--src/arbits/slbt_archive_merge.c8
-rw-r--r--src/arbits/slbt_archive_store.c8
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)