diff mbox series

livepatch-build-tools: fix misuse of script directory as work directory

Message ID 20231213135147.6749-1-roger.pau@citrix.com (mailing list archive)
State New
Headers show
Series livepatch-build-tools: fix misuse of script directory as work directory | expand

Commit Message

Roger Pau Monne Dec. 13, 2023, 1:51 p.m. UTC
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

Comments

Ross Lagerwall Dec. 13, 2023, 4:17 p.m. UTC | #1
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
Jan Beulich Dec. 14, 2023, 8:19 a.m. UTC | #2
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
Roger Pau Monne Dec. 14, 2023, 8:49 a.m. UTC | #3
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 mbox series

Patch

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")"