Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15
pacemaker.16898
bsc#1175557-0002-Low-extra-quote-shell-variable...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bsc#1175557-0002-Low-extra-quote-shell-variables-in-agent-code-where-.patch of Package pacemaker.16898
From 06439cc5b15f9201db181e5740ec9dd4bce5fcf9 Mon Sep 17 00:00:00 2001 From: Ken Gaillot <kgaillot@redhat.com> Date: Wed, 17 Jul 2019 14:13:20 -0500 Subject: [PATCH] Low: extra: quote shell variables in agent code where appropriate ... and correspondingly, don't quote where inappropriate (i.e. numeric comparisons), for general good practice, resilience against misconfigurations, and improved support for spaces in some user input values. --- extra/resources/ClusterMon.in | 40 +++++++------- extra/resources/Dummy | 14 ++--- extra/resources/HealthCPU | 16 +++--- extra/resources/HealthIOWait | 12 ++--- extra/resources/HealthSMART.in | 54 +++++++++---------- extra/resources/Stateful | 43 ++++++++------- extra/resources/SysInfo.in | 48 ++++++++--------- extra/resources/SystemHealth | 12 ++--- extra/resources/attribute | 12 ++--- extra/resources/controld | 22 ++++---- extra/resources/ifspeed.in | 98 +++++++++++++++++----------------- extra/resources/o2cb.in | 22 ++++---- extra/resources/ping | 40 +++++++------- extra/resources/pingd | 14 ++--- extra/resources/remote | 6 +-- 15 files changed, 228 insertions(+), 225 deletions(-) Index: pacemaker-1.1.18+20180430.b12c320f5/extra/resources/SysInfo =================================================================== --- pacemaker-1.1.18+20180430.b12c320f5.orig/extra/resources/SysInfo +++ pacemaker-1.1.18+20180430.b12c320f5/extra/resources/SysInfo @@ -29,9 +29,9 @@ ####################################################################### # Initialization: -: ${OCF_FUNCTIONS=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs} -. ${OCF_FUNCTIONS} -: ${__OCF_ACTION=$1} +: ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} +. "${OCF_FUNCTIONS}" +: ${__OCF_ACTION:="$1"} ####################################################################### @@ -146,13 +146,13 @@ END ####################################################################### UpdateStat() { - name=$1; shift + name="$1"; shift value="$*" printf "%s:\t%s\n" "$name" "$value" if [ "$__OCF_ACTION" = "start" ] ; then - ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -S status -n $name -B "$value" + "${HA_SBIN_DIR}/attrd_updater" ${OCF_RESKEY_delay} -S status -n $name -B "$value" else - ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -S status -n $name -v "$value" + "${HA_SBIN_DIR}/attrd_updater" ${OCF_RESKEY_delay} -S status -n $name -v "$value" fi } @@ -165,8 +165,8 @@ SysInfoStats() { "Darwin") mem=`top -l 1 | grep Mem: | awk '{print $10}'` mem_used=`top -l 1 | grep Mem: | awk '{print $8}'` - mem=`SysInfo_mem_units $mem` - mem_used=`SysInfo_mem_units $mem_used` + mem=`SysInfo_mem_units "$mem"` + mem_used=`SysInfo_mem_units "$mem_used"` mem_total=`expr $mem_used + $mem` cpu_type=`system_profiler SPHardwareDataType | awk -F': ' '/^CPU Type/ {print $2; exit}'` cpu_speed=`system_profiler SPHardwareDataType | awk -F': ' '/^CPU Speed/ {print $2; exit}'` @@ -197,7 +197,7 @@ SysInfoStats() { if [ -f /proc/meminfo ]; then # meminfo results are in kB mem=`grep "SwapFree" /proc/meminfo | awk '{print $2"k"}'` - if [ ! -z $mem ]; then + if [ ! -z "$mem" ]; then UpdateStat free_swap "$(SysInfo_mem_units "$mem")" fi mem=`grep "Inactive" /proc/meminfo | awk '{print $2"k"}'` @@ -236,11 +236,11 @@ SysInfoStats() { # 'tail -n <c>' to the equivalent 'tail -<c>'. for disk in "/" ${OCF_RESKEY_disks}; do unset disk_free disk_label - disk_free=`df -h ${disk} | tail -1 | awk '{print $4}'` + disk_free=`df -h "${disk}" | tail -1 | awk '{print $4}'` if [ x != x"$disk_free" ]; then disk_label=`echo $disk | sed -e 's#^/$#root#;s#^/*##;s#/#_#g'` - disk_free=`SysInfo_hdd_units $disk_free` - UpdateStat ${disk_label}_free $disk_free + disk_free=`SysInfo_hdd_units "$disk_free"` + UpdateStat "${disk_label}_free" $disk_free if [ -n "$MIN_FREE" ]; then if [ $disk_free -le $MIN_FREE ]; then UpdateStat "#health_disk" "red" @@ -264,9 +264,9 @@ SysInfo_megabytes() { } SysInfo_mem_units() { - mem=$1 + mem="$1" - if [ -z $1 ]; then + if [ -z "$1" ]; then return fi @@ -283,7 +283,7 @@ SysInfo_mem_units() { SysInfo_hdd_units() { # Defauts to size in gigabytes - case $OCF_RESKEY_disk_unit in + case "$OCF_RESKEY_disk_unit" in [Pp]) echo $(($(SysInfo_megabytes "$1") / 1024 / 1024 / 1024));; [Tt]) echo $(($(SysInfo_megabytes "$1") / 1024 / 1024));; [Gg]) echo $(($(SysInfo_megabytes "$1") / 1024));; @@ -305,26 +305,26 @@ END } SysInfo_start() { - echo $OCF_RESKEY_clone > $OCF_RESKEY_pidfile + echo $OCF_RESKEY_clone > "$OCF_RESKEY_pidfile" SysInfoStats exit $OCF_SUCCESS } SysInfo_stop() { - rm $OCF_RESKEY_pidfile + rm "$OCF_RESKEY_pidfile" exit $OCF_SUCCESS } SysInfo_monitor() { - if [ -f $OCF_RESKEY_pidfile ]; then - clone=`cat $OCF_RESKEY_pidfile` + if [ -f "$OCF_RESKEY_pidfile" ]; then + clone=`cat "$OCF_RESKEY_pidfile"` fi - if [ x$clone = x ]; then - rm $OCF_RESKEY_pidfile + if [ "x$clone" = "x" ]; then + rm "$OCF_RESKEY_pidfile" exit $OCF_NOT_RUNNING - elif [ $clone = $OCF_RESKEY_clone ]; then + elif [ "$clone" = "$OCF_RESKEY_clone" ]; then SysInfoStats exit $OCF_SUCCESS @@ -347,7 +347,7 @@ fi : ${OCF_RESKEY_pidfile:="${HA_VARRUN%%/}/SysInfo-${OCF_RESOURCE_INSTANCE}"} : ${OCF_RESKEY_disk_unit:="G"} : ${OCF_RESKEY_clone:="0"} -if [ x != x${OCF_RESKEY_delay} ]; then +if [ "x" != "x${OCF_RESKEY_delay}" ]; then OCF_RESKEY_delay="-d ${OCF_RESKEY_delay}" else OCF_RESKEY_delay="-d 0" @@ -359,7 +359,7 @@ if [ -n "$OCF_RESKEY_min_disk_free" ]; t MIN_FREE=`SysInfo_hdd_units $OCF_RESKEY_min_disk_free` fi -case $__OCF_ACTION in +case "$__OCF_ACTION" in meta-data) meta_data exit $OCF_SUCCESS ;;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor