From 0bf94a089dbd5f215259aee174d6d1205e99b9c7 Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Tue, 17 Oct 2017 21:13:26 +0000 Subject: [PATCH] embed_mfs: add error handling, usage Ensure that we are called with two arguments, and that the output file is writable. Also, if we cannot find the mfs section report the output file name rather than "kernel", as this script may be used with other than kernels. Sponsored by: The FreeBSD Foundation --- sys/tools/embed_mfs.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sys/tools/embed_mfs.sh b/sys/tools/embed_mfs.sh index a7ac80c8f8d..780ad891ae0 100644 --- a/sys/tools/embed_mfs.sh +++ b/sys/tools/embed_mfs.sh @@ -32,13 +32,22 @@ # $2: MFS image filename # +if [ $# -ne 2 ]; then + echo "usage: $(basename $0) target mfs_image" + exit 0 +fi +if [ ! -w "$1" ]; then + echo $1 not writable + exit 1 +fi + mfs_size=`stat -f '%z' $2 2> /dev/null` # If we can't determine MFS image size - bail. [ -z ${mfs_size} ] && echo "Can't determine MFS image size" && exit 1 sec_info=`elfdump -c $1 2> /dev/null | grep -A 5 -E "sh_name: oldmfs$"` # If we can't find the mfs section within the given kernel - bail. -[ -z "${sec_info}" ] && echo "Can't locate mfs section within kernel" && exit 1 +[ -z "${sec_info}" ] && echo "Can't locate mfs section within $1" && exit 1 sec_size=`echo "${sec_info}" | awk '/sh_size/ {print $2}' 2> /dev/null` sec_start=`echo "${sec_info}" | awk '/sh_offset/ {print $2}' 2> /dev/null`