Don't throw in socket_read if socket_read_all returns < 0.

All codepaths in socket_read_all that return a negative value have
already thrown an exception. socket_read should not throw again.

This causes debuggagle apps to crash with a JNI failure if
LocalSocket#read gets an error.

Test: atest CtsNetTestCases
Bug: 229813087
Change-Id: I2a04a799d3748c221f8555fa7afc40d73f0f392c
This commit is contained in:
Taras Antoshchuk
2022-05-13 18:15:11 +02:00
parent a1ae227bc2
commit e6cf914c3f

View File

@@ -257,7 +257,7 @@ static jint socket_read (JNIEnv *env, jobject object, jobject fileDescriptor)
err = socket_read_all(env, object, fd, &buf, 1);
if (err < 0) {
jniThrowIOException(env, errno);
// socket_read_all has already thrown
return (jint)0;
}