Message ID | 20231213135147.6749-1-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | livepatch-build-tools: fix misuse of script directory as work directory | expand |
On Wed, Dec 13, 2023 at 1:52 PM Roger Pau Monne <roger.pau@citrix.com> wrote: > > It's incorrect to assume that the script directory will always match the > directory the script is executed from. Instead cache the directory at the > start of script execution in order to be able to get back to it if needed. > > Fixes: 629ab8ddb775 ('livepatch-build-tools: do not use readlink -m option') > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> > --- > livepatch-build | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/livepatch-build b/livepatch-build > index f622683fc56c..e318cecd4da6 100755 > --- a/livepatch-build > +++ b/livepatch-build > @@ -25,6 +25,7 @@ > # script. > > SCRIPTDIR="$(readlink -f $(dirname $(type -p $0)))" > +WORKDIR="$(readlink -f -- .)" > CPUS="$(getconf _NPROCESSORS_ONLN)" > DEBUG=n > XEN_DEBUG=n > @@ -459,7 +460,7 @@ if [ "${SKIP}" != "build" ]; then > fi > > if [ "${SKIP}" != "diff" ]; then > - cd "${SCRIPTDIR}" || die > + cd "${WORKDIR}" || die > [ -d "$outputarg" ] || die "Output directory does not exist" > OUTPUT="$(readlink -f -- "$outputarg")" > > > base-commit: 0ed8ef88dc300750696a64e89efa3b82502f6dc7 > prerequisite-patch-id: 20327fdf775db3903c8067a0642254d67c495806 > -- > 2.43.0 > Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com> Thanks, Ross
On 13.12.2023 14:51, Roger Pau Monne wrote: > --- a/livepatch-build > +++ b/livepatch-build > @@ -25,6 +25,7 @@ > # script. > > SCRIPTDIR="$(readlink -f $(dirname $(type -p $0)))" > +WORKDIR="$(readlink -f -- .)" More for my own education than anything else: Isn't the (standard) pwd utility intended to be the "canonical" way of getting at the current directory? Its -P option (apparently what would be needed to match the -f used above) is also a standard one afaict. Jan
On Thu, Dec 14, 2023 at 09:19:35AM +0100, Jan Beulich wrote: > On 13.12.2023 14:51, Roger Pau Monne wrote: > > --- a/livepatch-build > > +++ b/livepatch-build > > @@ -25,6 +25,7 @@ > > # script. > > > > SCRIPTDIR="$(readlink -f $(dirname $(type -p $0)))" > > +WORKDIR="$(readlink -f -- .)" > > More for my own education than anything else: Isn't the (standard) pwd > utility intended to be the "canonical" way of getting at the current > directory? Its -P option (apparently what would be needed to match the > -f used above) is also a standard one afaict. Hm, yes, having looked at it `pwd -P` would also be fine. I've used readlink because that's what is used thorough the script. Thanks, Roger.
diff --git a/livepatch-build b/livepatch-build index f622683fc56c..e318cecd4da6 100755 --- a/livepatch-build +++ b/livepatch-build @@ -25,6 +25,7 @@ # script. SCRIPTDIR="$(readlink -f $(dirname $(type -p $0)))" +WORKDIR="$(readlink -f -- .)" CPUS="$(getconf _NPROCESSORS_ONLN)" DEBUG=n XEN_DEBUG=n @@ -459,7 +460,7 @@ if [ "${SKIP}" != "build" ]; then fi if [ "${SKIP}" != "diff" ]; then - cd "${SCRIPTDIR}" || die + cd "${WORKDIR}" || die [ -d "$outputarg" ] || die "Output directory does not exist" OUTPUT="$(readlink -f -- "$outputarg")"
It's incorrect to assume that the script directory will always match the directory the script is executed from. Instead cache the directory at the start of script execution in order to be able to get back to it if needed. Fixes: 629ab8ddb775 ('livepatch-build-tools: do not use readlink -m option') Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> --- livepatch-build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) base-commit: 0ed8ef88dc300750696a64e89efa3b82502f6dc7 prerequisite-patch-id: 20327fdf775db3903c8067a0642254d67c495806