[lttng-dev] [PATCH lttng-modules] Fix: add variable quoting to shell scripts

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Tue Feb 20 12:34:06 EST 2018


Merged into master, 2.10, 2.9, thanks!

Mathieu

----- On Feb 20, 2018, at 12:16 PM, Michael Jeanson mjeanson at efficios.com wrote:

> Prevent errors if a path contains spaces.
> 
> Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
> ---
> abi-debian-version.sh | 16 ++++++++--------
> abi-rhel-version.sh   | 12 ++++++------
> rt-patch-version.sh   |  4 ++--
> 3 files changed, 16 insertions(+), 16 deletions(-)
> 
> diff --git a/abi-debian-version.sh b/abi-debian-version.sh
> index 36da212..4f2c088 100755
> --- a/abi-debian-version.sh
> +++ b/abi-debian-version.sh
> @@ -1,9 +1,9 @@
> #!/bin/sh
> 
> # First argument is the path to the kernel headers.
> -KPATH=$1
> +KPATH="$1"
> 
> -if [ ! -f ${KPATH}/include/generated/package.h ]; then
> +if [ ! -f "${KPATH}/include/generated/package.h" ]; then
> 	echo 0
> 	exit 0
> fi
> @@ -11,10 +11,10 @@ fi
> # Debian snippet courtesy of Ben Hutchings
> 
> # Assuming KPATH is the target kernel headers directory
> -DEB_PACKAGE_VERSION=$(sed -rn 's/^#define LINUX_PACKAGE_ID " Debian (.*)"/\1/p'
> ${KPATH}/include/generated/package.h)
> +DEB_PACKAGE_VERSION=$(sed -rn 's/^#define LINUX_PACKAGE_ID " Debian (.*)"/\1/p'
> "${KPATH}/include/generated/package.h")
> 
> # Ignore backports part
> -DEB_PACKAGE_VERSION=$(echo ${DEB_PACKAGE_VERSION} | sed -r 's/~(bpo|deb).*//')
> +DEB_PACKAGE_VERSION=$(echo "${DEB_PACKAGE_VERSION}" | sed -r
> 's/~(bpo|deb).*//')
> 
> # ckt (Canonical Kernel Team) kernels were used for a while during the jessie
> # cycle, their versionning is a bit different. They track the upstream vanilla
> @@ -23,15 +23,15 @@ DEB_PACKAGE_VERSION=$(echo ${DEB_PACKAGE_VERSION} | sed -r
> 's/~(bpo|deb).*//')
> # switched back to upstream style at 3.16.36.
> 
> # Get -ckt update number, if present
> -KERNEL_CKT_UPDATE=$(echo ${DEB_PACKAGE_VERSION} | sed -rn
> 's/^[0-9]+\.[0-9]+\.[0-9]+-ckt([0-9]+).*/\1/p')
> +KERNEL_CKT_UPDATE=$(echo "${DEB_PACKAGE_VERSION}" | sed -rn
> 's/^[0-9]+\.[0-9]+\.[0-9]+-ckt([0-9]+).*/\1/p')
> test -n "${KERNEL_CKT_UPDATE}" || KERNEL_CKT_UPDATE=0
> 
> # Get package revision
> -DEB_PACKAGE_REVISION=$(echo ${DEB_PACKAGE_VERSION} | sed -r
> 's/.*-([^-]+)$/\1/')
> +DEB_PACKAGE_REVISION=$(echo "${DEB_PACKAGE_VERSION}" | sed -r
> 's/.*-([^-]+)$/\1/')
> # Get non-sec update number
> -DEB_PACKAGE_REVISION_BASE=$(echo ${DEB_PACKAGE_REVISION} | sed -r
> 's/^([0-9]+).*/\1/')
> +DEB_PACKAGE_REVISION_BASE=$(echo "${DEB_PACKAGE_REVISION}" | sed -r
> 's/^([0-9]+).*/\1/')
> # Get security update number, if present
> -DEB_PACKAGE_REVISION_SECURITY=$(echo ${DEB_PACKAGE_REVISION} | sed -rn
> 's/.*\+(squeeze|deb[0-9]+)+u([0-9]+)$/\2/p')
> +DEB_PACKAGE_REVISION_SECURITY=$(echo "${DEB_PACKAGE_REVISION}" | sed -rn
> 's/.*\+(squeeze|deb[0-9]+)+u([0-9]+)$/\2/p')
> test -n "${DEB_PACKAGE_REVISION_SECURITY}" || DEB_PACKAGE_REVISION_SECURITY=0
> # Combine all update numbers into one
> DEB_API_VERSION=$((KERNEL_CKT_UPDATE * 10000 + DEB_PACKAGE_REVISION_BASE * 100 +
> DEB_PACKAGE_REVISION_SECURITY))
> diff --git a/abi-rhel-version.sh b/abi-rhel-version.sh
> index 30f3c17..bd5328a 100755
> --- a/abi-rhel-version.sh
> +++ b/abi-rhel-version.sh
> @@ -1,19 +1,19 @@
> #!/bin/sh
> 
> # First argument is the path to the kernel headers.
> -KPATH=$1
> +KPATH="$1"
> 
> -if [ ! -f ${KPATH}/include/generated/uapi/linux/version.h ]; then
> +if [ ! -f "${KPATH}/include/generated/uapi/linux/version.h" ]; then
> 	echo 0
> 	exit 0
> fi
> 
> # Assuming KPATH is the target kernel headers directory
> -RHEL_RELEASE=$(sed -rn 's/^#define RHEL_RELEASE "(.*)"/\1/p'
> ${KPATH}/include/generated/uapi/linux/version.h)
> +RHEL_RELEASE=$(sed -rn 's/^#define RHEL_RELEASE "(.*)"/\1/p'
> "${KPATH}/include/generated/uapi/linux/version.h")
> 
> -RHEL_RELEASE_MAJOR=$(echo ${RHEL_RELEASE} | sed -r
> 's/^([0-9]+)\.([0-9]+)\.([0-9]+)/\1/')
> -RHEL_RELEASE_MINOR=$(echo ${RHEL_RELEASE} | sed -r
> 's/^([0-9]+)\.([0-9]+)\.([0-9]+)/\2/')
> -RHEL_RELEASE_PATCH=$(echo ${RHEL_RELEASE} | sed -r
> 's/^([0-9]+)\.([0-9]+)\.([0-9]+)/\3/')
> +RHEL_RELEASE_MAJOR=$(echo "${RHEL_RELEASE}" | sed -r
> 's/^([0-9]+)\.([0-9]+)\.([0-9]+)/\1/')
> +RHEL_RELEASE_MINOR=$(echo "${RHEL_RELEASE}" | sed -r
> 's/^([0-9]+)\.([0-9]+)\.([0-9]+)/\2/')
> +RHEL_RELEASE_PATCH=$(echo "${RHEL_RELEASE}" | sed -r
> 's/^([0-9]+)\.([0-9]+)\.([0-9]+)/\3/')
> 
> # Combine all update numbers into one
> RHEL_API_VERSION=$((RHEL_RELEASE_MAJOR * 10000 + RHEL_RELEASE_MINOR * 100 +
> RHEL_RELEASE_PATCH))
> diff --git a/rt-patch-version.sh b/rt-patch-version.sh
> index 89c7755..6a00fef 100755
> --- a/rt-patch-version.sh
> +++ b/rt-patch-version.sh
> @@ -1,7 +1,7 @@
> #!/bin/sh
> 
> # First argument is the path to the kernel headers.
> -KPATH=$1
> +KPATH="$1"
> 
> VERSIONFILE=""
> 
> @@ -22,4 +22,4 @@ if [ "x${RT_PATCH_VERSION}" = "x" ]; then
> 	exit 0
> fi
> 
> -echo ${RT_PATCH_VERSION}
> +echo "${RT_PATCH_VERSION}"
> --
> 2.7.4

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list