diff options
author | midipix <writeonce@midipix.org> | 2021-04-13 18:15:38 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2021-04-15 08:03:32 +0000 |
commit | c81d169af088b6b90d850d7c0f5c5daae6cfc4ba (patch) | |
tree | 4f9a8dbaff4ebae2ec685e8755fb1449644ee744 /src/helper | |
parent | 7ae5c14d2b4cc2dce023dac9bdf6020962c7bcec (diff) | |
download | slibtool-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.c | 7 | ||||
-rw-r--r-- | src/helper/slbt_copy_file.c | 7 | ||||
-rw-r--r-- | src/helper/slbt_realpath.c | 3 |
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; } |