这是indexloc提供的服务,不要输入任何密码
Skip to content

Commit 3b85bc1

Browse files
Fixed: Fix crash if input or output socket extras are not set
`com.termux.api A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 23068 (Thread-4)`
1 parent fab6872 commit 3b85bc1

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

app/src/main/java/com/termux/api/util/ResultReturner.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import java.io.ByteArrayOutputStream;
2020
import java.io.FileDescriptor;
21+
import java.io.IOException;
2122
import java.io.InputStream;
2223
import java.io.OutputStream;
2324
import java.io.PrintWriter;
@@ -154,6 +155,8 @@ public static void returnData(Object context, final Intent intent, final ResultW
154155
final ParcelFileDescriptor[] pfds = { null };
155156
outputSocket = new LocalSocket();
156157
String outputSocketAdress = intent.getStringExtra(SOCKET_OUTPUT_EXTRA);
158+
if (outputSocketAdress == null || outputSocketAdress.isEmpty())
159+
throw new IOException("Missing '" + SOCKET_OUTPUT_EXTRA + "' extra");
157160
Logger.logDebug(LOG_TAG, "Connecting to output socket \"" + outputSocketAdress + "\"");
158161
outputSocket.connect(new LocalSocketAddress(outputSocketAdress));
159162
writer = new PrintWriter(outputSocket.getOutputStream());
@@ -166,6 +169,8 @@ public static void returnData(Object context, final Intent intent, final ResultW
166169
if (resultWriter instanceof WithInput) {
167170
try (LocalSocket inputSocket = new LocalSocket()) {
168171
String inputSocketAdress = intent.getStringExtra(SOCKET_INPUT_EXTRA);
172+
if (inputSocketAdress == null || inputSocketAdress.isEmpty())
173+
throw new IOException("Missing '" + SOCKET_INPUT_EXTRA + "' extra");
169174
inputSocket.connect(new LocalSocketAddress(inputSocketAdress));
170175
((WithInput) resultWriter).setInput(inputSocket.getInputStream());
171176
resultWriter.writeResult(writer);

0 commit comments

Comments
 (0)