tools/hotplug: Do not recursively invoke xenstore_write on error
authorIan Campbell <ian.campbell@citrix.com>
Thu, 16 Dec 2010 17:58:00 +0000 (17:58 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Thu, 16 Dec 2010 17:58:00 +0000 (17:58 +0000)
This fixes a possible infinite recursion.

From: Ian Campbell <Ian.Campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/hotplug/Linux/xen-hotplug-common.sh

index d63b7660c6ade8e9298ee00d37a464f3285d30fd..370f9ade2f77874c1135a2c9771cfff1876db305 100644 (file)
@@ -29,8 +29,8 @@ export LANG="POSIX"
 unset $(set | grep ^LC_ | cut -d= -f1)
 
 fatal() {
-  xenstore_write "$XENBUS_PATH/hotplug-error" "$*" \
-                 "$XENBUS_PATH/hotplug-status" error
+  _xenstore_write "$XENBUS_PATH/hotplug-error" "$*" \
+                  "$XENBUS_PATH/hotplug-status" error
   log err "$@"
   exit 1
 }
@@ -79,6 +79,16 @@ xenstore_read_default() {
 }
 
 
+##
+# _xenstore_write (<path> <value>)+
+#
+# Write each of the key/value pairs to the store.
+#
+_xenstore_write() {
+  log debug "Writing $@ to xenstore."
+  xenstore-write "$@"
+}
+
 ##
 # xenstore_write (<path> <value>)+
 #
@@ -86,9 +96,7 @@ xenstore_read_default() {
 # such writing fails.
 #
 xenstore_write() {
-  log debug "Writing $@ to xenstore."
-  xenstore-write "$@" || fatal "Writing $@ to xenstore failed."
+  _xenstore_write "$@" || fatal "Writing $@ to xenstore failed."
 }
 
-
 log debug "$@" "XENBUS_PATH=$XENBUS_PATH"