Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63815
Quote CATALINA_OPTS and JAVA_OPTS when used to prevent expansion of *.
diff --git a/bin/catalina.sh b/bin/catalina.sh
index 5fbdb72..baa0bd9 100755
--- a/bin/catalina.sh
+++ b/bin/catalina.sh
@@ -354,7 +354,7 @@
echo "Using Security Manager"
fi
shift
- exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
+ exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
-classpath "$CLASSPATH" \
-sourcepath "$CATALINA_HOME"/../../java \
@@ -365,7 +365,7 @@
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
org.apache.catalina.startup.Bootstrap "$@" start
else
- exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
+ exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
-classpath "$CLASSPATH" \
-sourcepath "$CATALINA_HOME"/../../java \
@@ -384,7 +384,7 @@
echo "Using Security Manager"
fi
shift
- eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
+ eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Djava.security.manager \
@@ -394,7 +394,7 @@
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start
else
- eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
+ eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
@@ -452,7 +452,7 @@
echo "Using Security Manager"
fi
shift
- eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
+ eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Djava.security.manager \
@@ -464,7 +464,7 @@
>> "$CATALINA_OUT" 2>&1 "&"
else
- eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
+ eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
@@ -517,7 +517,7 @@
fi
fi
- eval "\"$_RUNJAVA\"" $LOGGING_MANAGER $JAVA_OPTS \
+ eval "\"$_RUNJAVA\"" $LOGGING_MANAGER "$JAVA_OPTS" \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
@@ -604,7 +604,7 @@
elif [ "$1" = "configtest" ] ; then
- eval "\"$_RUNJAVA\"" $LOGGING_MANAGER $JAVA_OPTS \
+ eval "\"$_RUNJAVA\"" $LOGGING_MANAGER "$JAVA_OPTS" \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
diff --git a/bin/daemon.sh b/bin/daemon.sh
index afa4c89..3c517ba 100755
--- a/bin/daemon.sh
+++ b/bin/daemon.sh
@@ -208,7 +208,7 @@
-outfile "&1" \
-errfile "&2" \
-classpath "$CLASSPATH" \
- "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
+ "$LOGGING_CONFIG" "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
@@ -225,7 +225,7 @@
-outfile "$CATALINA_OUT" \
-errfile "&1" \
-classpath "$CLASSPATH" \
- "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
+ "$LOGGING_CONFIG" "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
diff --git a/bin/tool-wrapper.sh b/bin/tool-wrapper.sh
index f9924da..3d8081e 100755
--- a/bin/tool-wrapper.sh
+++ b/bin/tool-wrapper.sh
@@ -146,7 +146,7 @@
# ----- Execute The Requested Command -----------------------------------------
-exec "$_RUNJAVA" $JAVA_OPTS $TOOL_OPTS \
+exec "$_RUNJAVA" "$JAVA_OPTS" $TOOL_OPTS \
-D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
-classpath "$CLASSPATH" \
-Dcatalina.home="$CATALINA_HOME" \
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index aa8e88d..fec9c7f 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -82,6 +82,13 @@
<subsection name="Other">
<changelog>
<fix>
+ <bug>63815</bug>: Quote the use of <code>CATALINA_OPTS</code> and
+ <code>JAVA_OPTS</code> when used in shell scripts to avoid the expansion
+ of <code>*</code>. Note that any newlines present in
+ <code>CATALINA_OPTS</code> and/or <code>JAVA_OPTS</code> will no longer
+ removed. (markt)
+ </fix>
+ <fix>
<bug>63826</bug>: Remove <code>commons-daemon-native.tar.gz</code> and
<code>tomcat-native.tar.gz</code> from the binary zip distributions for
Windows since compiled versions of those components are already