From 7ae5c14d2b4cc2dce023dac9bdf6020962c7bcec Mon Sep 17 00:00:00 2001 From: midipix Date: Tue, 13 Apr 2021 16:46:12 +0000 Subject: library: replace all uses of stat() and lstat() with fstatat() counterparts. --- src/logic/slbt_exec_execute.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/logic/slbt_exec_execute.c') diff --git a/src/logic/slbt_exec_execute.c b/src/logic/slbt_exec_execute.c index bcf0913..91a1cb7 100644 --- a/src/logic/slbt_exec_execute.c +++ b/src/logic/slbt_exec_execute.c @@ -12,6 +12,7 @@ #include #include "slibtool_spawn_impl.h" +#include "slibtool_driver_impl.h" #include "slibtool_errinfo_impl.h" int slbt_exec_execute( @@ -19,6 +20,7 @@ int slbt_exec_execute( struct slbt_exec_ctx * ectx) { int ret; + int fdcwd; char * program; char * script; char * base; @@ -66,8 +68,11 @@ int slbt_exec_execute( mark = exeref + (base - script); sprintf(mark,".libs/%s",base); + /* fdcwd */ + fdcwd = slbt_driver_fdcwd(dctx); + /* swap vector */ - if (!(stat(script,&st)) && !(stat(wrapper,&st))) { + if (!fstatat(fdcwd,script,&st,0) && !fstatat(fdcwd,wrapper,&st,0)) { ectx->cargv[0] = wrapper; ectx->cargv[1] = program; ectx->cargv[2] = exeref; -- cgit v1.2.3