From c81d169af088b6b90d850d7c0f5c5daae6cfc4ba Mon Sep 17 00:00:00 2001 From: midipix Date: Tue, 13 Apr 2021 18:15:38 +0000 Subject: library: replace all uses of [slbt_]readlink() with [slbt_]readlinkat(). --- src/helper/slbt_archive_import.c | 7 ++++++- src/helper/slbt_copy_file.c | 7 ++++++- src/helper/slbt_realpath.c | 3 ++- 3 files changed, 14 insertions(+), 3 deletions(-) (limited to 'src/helper') 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 #include +#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 +#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 #include +#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; } -- cgit v1.2.3