]> granicus.if.org Git - ejabberd/commitdiff
Escape output from ctlexec() to erl script (thanks to Dan Scott)(EJAB-1399)
authorBadlop <badlop@process-one.net>
Wed, 9 Feb 2011 12:30:01 +0000 (13:30 +0100)
committerBadlop <badlop@process-one.net>
Wed, 9 Feb 2011 15:34:48 +0000 (16:34 +0100)
src/ejabberdctl.template

index 11dd3037a2fa6228a3710d863e02003178d10734..8ffdf9251a6103864820a989cf5100160f62a303 100644 (file)
@@ -328,13 +328,21 @@ ctlexec ()
 {
     CONN_NAME=$1; shift
     COMMAND=$@
-    $EXEC_CMD "$ERL \
+
+    CTLEXEC="$ERL \
       $NAME ${CONN_NAME} \
       -noinput \
       -hidden \
       -pa $EJABBERD_EBIN_PATH \
       $KERNEL_OPTS \
-      -s ejabberd_ctl -extra $ERLANG_NODE $COMMAND"
+      -s ejabberd_ctl -extra $ERLANG_NODE"
+
+    # quote input from the command line
+    for i in $COMMAND; do
+       CTLEXEC="$CTLEXEC '$i'";
+    done
+
+    $EXEC_CMD "$CTLEXEC"
 }
 
 # display ctl usage