summaryrefslogtreecommitdiffhomepage
path: root/src/helper
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2021-04-13 18:15:38 +0000
committermidipix <writeonce@midipix.org>2021-04-15 08:03:32 +0000
commitc81d169af088b6b90d850d7c0f5c5daae6cfc4ba (patch)
tree4f9a8dbaff4ebae2ec685e8755fb1449644ee744 /src/helper
parent7ae5c14d2b4cc2dce023dac9bdf6020962c7bcec (diff)
downloadslibtool-c81d169af088b6b90d850d7c0f5c5daae6cfc4ba.tar.bz2
slibtool-c81d169af088b6b90d850d7c0f5c5daae6cfc4ba.tar.xz
library: replace all uses of [slbt_]readlink() with [slbt_]readlinkat().
Diffstat (limited to 'src/helper')
-rw-r--r--src/helper/slbt_archive_import.c7
-rw-r--r--src/helper/slbt_copy_file.c7
-rw-r--r--src/helper/slbt_realpath.c3
3 files changed, 14 insertions, 3 deletions
diff --git a/src/helper/slbt_archive_import.c b/src/helper/slbt_archive_import.c
index ae8821b..b3b1cec 100644
--- a/src/helper/slbt_archive_import.c
+++ b/src/helper/slbt_archive_import.c
@@ -13,6 +13,7 @@
#include <sys/wait.h>
#include <slibtool/slibtool.h>
+#include "slibtool_driver_impl.h"
#include "slibtool_spawn_impl.h"
#include "slibtool_dprintf_impl.h"
#include "slibtool_symlink_impl.h"
@@ -80,6 +81,7 @@ int slbt_archive_import(
char * dstarchive,
char * srcarchive)
{
+ int fdcwd;
pid_t pid;
pid_t rpid;
int fd[2];
@@ -90,8 +92,11 @@ int slbt_archive_import(
char mrisrc [L_tmpnam];
char program[PATH_MAX];
+ /* fdcwd */
+ fdcwd = slbt_driver_fdcwd(dctx);
+
/* not needed? */
- if (slbt_symlink_is_a_placeholder(srcarchive))
+ if (slbt_symlink_is_a_placeholder(fdcwd,srcarchive))
return 0;
/* program */
diff --git a/src/helper/slbt_copy_file.c b/src/helper/slbt_copy_file.c
index e9abee5..7e549d9 100644
--- a/src/helper/slbt_copy_file.c
+++ b/src/helper/slbt_copy_file.c
@@ -6,6 +6,7 @@
/*******************************************************************/
#include <slibtool/slibtool.h>
+#include "slibtool_driver_impl.h"
#include "slibtool_spawn_impl.h"
#include "slibtool_symlink_impl.h"
#include "slibtool_errinfo_impl.h"
@@ -16,13 +17,17 @@ int slbt_copy_file(
char * src,
char * dst)
{
+ int fdcwd;
char ** oargv;
char * oprogram;
char * cp[4];
int ret;
+ /* fdcwd */
+ fdcwd = slbt_driver_fdcwd(dctx);
+
/* placeholder? */
- if (slbt_symlink_is_a_placeholder(src))
+ if (slbt_symlink_is_a_placeholder(fdcwd,src))
return 0;
/* cp argv */
diff --git a/src/helper/slbt_realpath.c b/src/helper/slbt_realpath.c
index 4c7446e..bae41ec 100644
--- a/src/helper/slbt_realpath.c
+++ b/src/helper/slbt_realpath.c
@@ -12,6 +12,7 @@
#include <sys/stat.h>
#include <slibtool/slibtool.h>
+#include "slibtool_driver_impl.h"
#include "slibtool_readlink_impl.h"
#ifdef _MIDIPIX_ABI
@@ -64,7 +65,7 @@ int slbt_realpath(
sprintf(procfspath,"/proc/self/fd/%d",fd);
- if (slbt_readlink(procfspath,buf,buflen)) {
+ if (slbt_readlinkat(fdat,procfspath,buf,buflen)) {
close(fd);
return -1;
}