From 660491af34cf794d71cf84a94f56dd310cdb034a Mon Sep 17 00:00:00 2001 From: midipix Date: Sat, 16 Apr 2016 06:55:11 -0400 Subject: slbt_create_symlink(): restore execution context argument vector at exit. --- src/internal/slibtool_symlink_impl.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/internal/slibtool_symlink_impl.c') diff --git a/src/internal/slibtool_symlink_impl.c b/src/internal/slibtool_symlink_impl.c index 91fff1a..db72feb 100644 --- a/src/internal/slibtool_symlink_impl.c +++ b/src/internal/slibtool_symlink_impl.c @@ -18,6 +18,7 @@ int slbt_create_symlink( const char * lnkname, bool flawrapper) { + char ** oargv; const char * slash; char * ln[5]; char * dotdot; @@ -51,19 +52,28 @@ int slbt_create_symlink( ln[2] = atarget; ln[3] = lnkarg; ln[4] = 0; + + oargv = ectx->argv; ectx->argv = ln; /* step output */ if (!(dctx->cctx->drvflags & SLBT_DRIVER_SILENT)) { if (dctx->cctx->mode == SLBT_MODE_LINK) { - if (slbt_output_link(dctx,ectx)) + if (slbt_output_link(dctx,ectx)) { + ectx->argv = oargv; return -1; + } } else { - if (slbt_output_install(dctx,ectx)) + if (slbt_output_install(dctx,ectx)) { + ectx->argv = oargv; return -1; + } } } + /* restore execution context */ + ectx->argv = oargv; + /* create symlink */ if (symlink(atarget,tmplnk)) return -1; -- cgit v1.2.3