summaryrefslogtreecommitdiff
path: root/src/arbits/slbt_archive_store.c
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2024-03-05 02:35:24 +0000
committermidipix <writeonce@midipix.org>2024-03-05 02:35:24 +0000
commit926d54732abf235cd099e496ec4bc98edffb1fbf (patch)
treec0aeda4f7ce797e4f556dd53f73679e7327e6b27 /src/arbits/slbt_archive_store.c
parente47cd7d15cee80e0a78fb7a4ec0d53e117d37379 (diff)
downloadslibtool-926d54732abf235cd099e496ec4bc98edffb1fbf.tar.bz2
slibtool-926d54732abf235cd099e496ec4bc98edffb1fbf.tar.xz
archiver api: record the associated path upon openat() related errors.x
Diffstat (limited to 'src/arbits/slbt_archive_store.c')
-rw-r--r--src/arbits/slbt_archive_store.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/arbits/slbt_archive_store.c b/src/arbits/slbt_archive_store.c
index cbf2704..293643a 100644
--- a/src/arbits/slbt_archive_store.c
+++ b/src/arbits/slbt_archive_store.c
@@ -82,7 +82,7 @@ int slbt_ar_store_archive(
if (fstatat(fdat,buf,&st,0) < 0)
return SLBT_SYSTEM_ERROR(
- dctx,0);
+ dctx,buf);
} else {
if (fstatat(fdat,".",&st,0) < 0)
return SLBT_SYSTEM_ERROR(
@@ -109,7 +109,7 @@ int slbt_ar_store_archive(
SLBT_ERR_FLOW_ERROR);
if ((fdtmp = openat(fdat,buf,O_WRONLY|O_CREAT|O_EXCL,mode)) < 0)
- return SLBT_SYSTEM_ERROR(dctx,0);
+ return SLBT_SYSTEM_ERROR(dctx,buf);
/* set archive size */
if (ftruncate(fdtmp,arctx->map->map_size) < 0)
@@ -137,7 +137,7 @@ int slbt_ar_store_archive(
/* finalize (atomically) */
if (renameat(fdat,buf,fdat,path) < 0) {
unlinkat(fdat,buf,0);
- return SLBT_SYSTEM_ERROR(dctx,0);
+ return SLBT_SYSTEM_ERROR(dctx,buf);
}
/* yay */