summaryrefslogtreecommitdiff
path: root/usr.sbin/syspatch/syspatch.sh
diff options
context:
space:
mode:
authorAntoine Jacoutot <ajacoutot@cvs.openbsd.org>2019-10-14 06:56:55 +0000
committerAntoine Jacoutot <ajacoutot@cvs.openbsd.org>2019-10-14 06:56:55 +0000
commitd7f8f10a938852924de0306dac58f493a664562d (patch)
tree2ad01ce1e0641eb49b2bc52a5fac2573e64750a9 /usr.sbin/syspatch/syspatch.sh
parent80161de8931f6237c9d6cbaa6f46ae529d427b5e (diff)
Better error message when we fail to fetch SHA256.sig.
Add "syspatch:" to every error message so we know where it comes from. req. by deraddt@ ok deraadt@ tb@
Diffstat (limited to 'usr.sbin/syspatch/syspatch.sh')
-rw-r--r--usr.sbin/syspatch/syspatch.sh20
1 files changed, 12 insertions, 8 deletions
diff --git a/usr.sbin/syspatch/syspatch.sh b/usr.sbin/syspatch/syspatch.sh
index 4d3e6bf6748..fd895fd8049 100644
--- a/usr.sbin/syspatch/syspatch.sh
+++ b/usr.sbin/syspatch/syspatch.sh
@@ -1,6 +1,6 @@
#!/bin/ksh
#
-# $OpenBSD: syspatch.sh,v 1.150 2019/09/28 17:30:07 ajacoutot Exp $
+# $OpenBSD: syspatch.sh,v 1.151 2019/10/14 06:56:54 ajacoutot Exp $
#
# Copyright (c) 2016, 2017 Antoine Jacoutot <ajacoutot@openbsd.org>
#
@@ -22,12 +22,12 @@ export PATH=/usr/bin:/bin:/usr/sbin:/sbin
sp_err()
{
- echo "${1}" 1>&2 && return ${2:-1}
+ echo "${0##*/}: ${1}" 1>&2 && return ${2:-1}
}
usage()
{
- sp_err "usage: ${0##*/} [-c | -l | -R | -r]"
+ echo "usage: ${0##*/} [-c | -l | -R | -r]"; return 1
}
apply_patch()
@@ -69,8 +69,8 @@ apply_patch()
'(^|[[:blank:]]+)usr/share/relink/kernel/GENERI(C|C.MP)/[[:print:]]+([[:blank:]]+|$)' ||
_KARL=true
- (! ${_upself} || sp_err "${0##*/} updated itself, run it again to \
-install missing patches" 2)
+ (! ${_upself} || sp_err "updated itself, run it again to install \
+missing patches" 2)
}
# quick-and-dirty filesystem status and size checks:
@@ -165,7 +165,8 @@ ls_missing()
# don't output anything on stdout to prevent corrupting the patch list
unpriv -f "${_sha}.sig" ftp -MVo "${_sha}.sig" "${_MIRROR}/SHA256.sig" \
- >/dev/null
+ >/dev/null 2>&1 ||
+ sp_err "failed to fetch ${_MIRROR}/SHA256.sig"
unpriv -f "${_sha}" signify -Veq -x ${_sha}.sig -m ${_sha} -p \
/etc/signify/openbsd-${_OSrev}-syspatch.pub >/dev/null
@@ -254,7 +255,10 @@ unpriv()
fi
(($# >= 1))
+ # propagate error code to the caller instead of failing hard
+ set +e
eval su -s /bin/sh ${_user} -c "'$@'" || _rc=$?
+ set -e
[[ -n ${_file} ]] && chown root "${_file}"
@@ -267,9 +271,9 @@ set -A _KERNV -- $(sysctl -n kern.version |
((${#_KERNV[*]} > 1)) && sp_err "Unsupported release: ${_KERNV[0]}${_KERNV[1]}"
[[ $@ == @(|-[[:alpha:]]) ]] || usage; [[ $@ == @(|-(c|R|r)) ]] &&
- (($(id -u) != 0)) && sp_err "${0##*/}: need root privileges"
+ (($(id -u) != 0)) && sp_err "need root privileges"
[[ $@ == @(|-(R|r)) ]] && pgrep -qxf '/bin/ksh .*reorder_kernel' &&
- sp_err "${0##*/}: cannot apply patches while reorder_kernel is running"
+ sp_err "cannot apply patches while reorder_kernel is running"
_OSrev=${_KERNV[0]%.*}${_KERNV[0]#*.}
[[ -n ${_OSrev} ]]