]> granicus.if.org Git - ejabberd/commitdiff
Fix escaping of argument in iexlive and iexdebug
authorPaweł Chmielowski <pchmielowski@process-one.net>
Wed, 9 Mar 2016 13:25:57 +0000 (14:25 +0100)
committerPaweł Chmielowski <pchmielowski@process-one.net>
Wed, 9 Mar 2016 13:26:28 +0000 (14:26 +0100)
ejabberdctl.template

index 07395aafdd183a0c789b91a8e7430bdbd8c6f8ff..aa9c2eb817c1b72d640d7e8e20b2dc99d690e980 100755 (executable)
@@ -159,6 +159,15 @@ export CONTRIB_MODULES_PATH
 export CONTRIB_MODULES_CONF_DIR
 export ERL_LIBS
 
+shell_escape_str()
+{
+    if test $# -eq 0; then
+        printf '"" '
+    else
+        shell_escape "$@"
+    fi
+}
+
 shell_escape()
 {
     local RES=()
@@ -208,10 +217,10 @@ iexdebug()
     # Elixir shell is hidden as default
     CMD="`shell_escape \"$IEX\" \"$IEXNAME\" \"debug-${TTY}-${ERLANG_NODE}\"` \
          -remsh $ERLANG_NODE \
-         --erl \"`shell_escape \"$KERNEL_OPTS\"\" \
-         --erl \"`shell_escape \"$ERLANG_OPTS\"\" \
-         --erl \"`shell_escape \"${ARGS[@]}\"\" \
-         --erl \"`shell_escape \"$@\"\""
+         --erl `shell_escape \"$KERNEL_OPTS\"` \
+         --erl `shell_escape \"$ERLANG_OPTS\"` \
+         --erl `shell_escape \"${ARGS[@]}\"` \
+         --erl `shell_escape_str \"$@\"`"
     $EXEC_CMD "$CMD"
 }
 
@@ -233,14 +242,15 @@ live()
 iexlive()
 {
     livewarning
+    echo $@
     CMD="`shell_escape \"$IEX\" \"$IEXNAME\" \"${ERLANG_NODE}\"` \
          --erl \"-mnesia dir \\\"$SPOOL_DIR\\\"\" \
          --erl \"`shell_escape \"$KERNEL_OPTS\"`\" \
          --erl \"`shell_escape \"$EJABBERD_OPTS\"`\" \
          --app ejabberd \
-         --erl \"`shell_escape \"$ERLANG_OPTS\"`\" \
-         --erl \"`shell_escape \"${ARGS[@]}\"`\" \
-         --erl \"`shell_escape \"$@\"`\""
+         --erl `shell_escape \"$ERLANG_OPTS\"` \
+         --erl `shell_escape \"${ARGS[@]}\"` \
+         --erl `shell_escape_str \"$@\"`"
     $EXEC_CMD "$CMD"
 }