summaryrefslogtreecommitdiff
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
parente47cd7d15cee80e0a78fb7a4ec0d53e117d37379 (diff)
downloadslibtool-926d54732abf235cd099e496ec4bc98edffb1fbf.tar.bz2
slibtool-926d54732abf235cd099e496ec4bc98edffb1fbf.tar.xz
archiver api: record the associated path upon openat() related errors.x
-rw-r--r--src/arbits/slbt_archive_dlsyms.c2
-rw-r--r--src/arbits/slbt_archive_mapfile.c2
-rw-r--r--src/arbits/slbt_archive_store.c6
-rw-r--r--src/arbits/slbt_archive_symfile.c2
4 files changed, 6 insertions, 6 deletions
diff --git a/src/arbits/slbt_archive_dlsyms.c b/src/arbits/slbt_archive_dlsyms.c
index 10201b4..6cacccd 100644
--- a/src/arbits/slbt_archive_dlsyms.c
+++ b/src/arbits/slbt_archive_dlsyms.c
@@ -359,7 +359,7 @@ static int slbt_ar_create_dlsyms_impl(
fdctx.fdcwd,path,
O_WRONLY|O_CREAT|O_TRUNC,
mode)) < 0)
- return SLBT_SYSTEM_ERROR(dctx,0);
+ return SLBT_SYSTEM_ERROR(dctx,path);
} else {
fdout = fdctx.fdout;
}
diff --git a/src/arbits/slbt_archive_mapfile.c b/src/arbits/slbt_archive_mapfile.c
index 07d947d..27d2b45 100644
--- a/src/arbits/slbt_archive_mapfile.c
+++ b/src/arbits/slbt_archive_mapfile.c
@@ -120,7 +120,7 @@ static int slbt_ar_create_mapfile_impl(
fdctx.fdcwd,path,
O_WRONLY|O_CREAT|O_TRUNC,
mode)) < 0)
- return SLBT_SYSTEM_ERROR(dctx,0);
+ return SLBT_SYSTEM_ERROR(dctx,path);
} else {
fdout = fdctx.fdout;
}
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 */
diff --git a/src/arbits/slbt_archive_symfile.c b/src/arbits/slbt_archive_symfile.c
index 498851f..b88791e 100644
--- a/src/arbits/slbt_archive_symfile.c
+++ b/src/arbits/slbt_archive_symfile.c
@@ -98,7 +98,7 @@ static int slbt_ar_create_symfile_impl(
fdctx.fdcwd,path,
O_WRONLY|O_CREAT|O_TRUNC,
mode)) < 0)
- return SLBT_SYSTEM_ERROR(dctx,0);
+ return SLBT_SYSTEM_ERROR(dctx,path);
} else {
fdout = fdctx.fdout;
}