lukeweber / webrtc-jingle-client

Webrtc audio + jingle protocol brought to IOS and Android.
https://groups.google.com/forum/?fromgroups#!forum/webrtc-jingle
BSD 3-Clause "New" or "Revised" License
336 stars 136 forks source link

Segfault when passing a null String to VoiceClient.nativeLogin() on Android #48

Closed wjwarren closed 11 years ago

wjwarren commented 11 years ago

The VoiceClient crashes with a segfault when the login method is passed a null String.

12-11 10:46:52.270: W/dalvikvm(18159): JNI WARNING: received null jstring 12-11 10:46:52.270: W/dalvikvm(18159): in Lcom/tuenti/voice/core/VoiceClient;.nativeLogin:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)V (GetStringUTFChars) 12-11 10:46:52.270: I/dalvikvm(18159): "main" prio=5 tid=1 NATIVE 12-11 10:46:52.270: I/dalvikvm(18159): | group="main" sCount=0 dsCount=0 obj=0x41383568 self=0x41371b60 12-11 10:46:52.270: I/dalvikvm(18159): | sysTid=18159 nice=0 sched=0/0 cgrp=apps handle=1074532144 12-11 10:46:52.270: I/dalvikvm(18159): | schedstat=( 159600709 39309747 296 ) utm=7 stm=8 core=3 12-11 10:46:52.290: I/dalvikvm(18159): #00 pc 00001260 /system/lib/libcorkscrew.so (unwind_backtracethread+27) 12-11 10:46:52.290: I/dalvikvm(18159): #01 pc 0005f904 /system/lib/libdvm.so (dvmDumpNativeStack(DebugOutputTarget const, int)+35) 12-11 10:46:52.290: I/dalvikvm(18159): #02 pc 000537ac /system/lib/libdvm.so (dvmDumpThreadEx(DebugOutputTarget const, Thread, bool)+303) 12-11 10:46:52.290: I/dalvikvm(18159): #03 pc 00053846 /system/lib/libdvm.so (dvmDumpThread(Thread_, bool)+25) 12-11 10:46:52.290: I/dalvikvm(18159): #04 pc 00038e02 /system/lib/libdvm.so 12-11 10:46:52.290: I/dalvikvm(18159): #05 pc 000390d6 /system/lib/libdvm.so 12-11 10:46:52.290: I/dalvikvm(18159): #06 pc 0003a186 /system/lib/libdvm.so 12-11 10:46:52.290: I/dalvikvm(18159): #07 pc 0003c32a /system/lib/libdvm.so 12-11 10:46:52.290: I/dalvikvm(18159): #08 pc 001c778c /data/data/com.tuenti.messenger/lib/libvoiceclient.so (Java_com_tuenti_voice_core_VoiceClientnativeLogin+163) 12-11 10:46:52.290: I/dalvikvm(18159): #09 pc 0001de70 /system/lib/libdvm.so (dvmPlatformInvoke+112) 12-11 10:46:52.290: I/dalvikvm(18159): #10 pc 0004d0c2 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const, JValue, Method const, Thread)+393) 12-11 10:46:52.290: I/dalvikvm(18159): #11 pc 0004f1dc /system/lib/libdvm.so (dvmResolveNativeMethod(unsigned int const, JValue, Method const, Thread)+171) 12-11 10:46:52.290: I/dalvikvm(18159): #12 pc 000272a0 /system/lib/libdvm.so 12-11 10:46:52.290: I/dalvikvm(18159): #13 pc 0002bba8 /system/lib/libdvm.so (dvmInterpret(Thread, Method const, JValue)+180) 12-11 10:46:52.290: I/dalvikvm(18159): #14 pc 0005faf6 /system/lib/libdvm.so (dvmInvokeMethod(Object, Method const, ArrayObject, ArrayObject, ClassObject, bool)+373) 12-11 10:46:52.290: I/dalvikvm(18159): #15 pc 0006709c /system/lib/libdvm.so 12-11 10:46:52.290: I/dalvikvm(18159): #16 pc 000272a0 /system/lib/libdvm.so 12-11 10:46:52.290: I/dalvikvm(18159): #17 pc 0002bba8 /system/lib/libdvm.so (dvmInterpret(Thread, Method const, JValue)+180) 12-11 10:46:52.290: I/dalvikvm(18159): #18 pc 0005f830 /system/lib/libdvm.so (dvmCallMethodV(Thread, Method const, Object, bool, JValue, std::__va_list)+271) 12-11 10:46:52.290: I/dalvikvm(18159): #19 pc 000496b2 /system/lib/libdvm.so 12-11 10:46:52.290: I/dalvikvm(18159): #20 pc 0004c44e /system/lib/libandroid_runtime.so 12-11 10:46:52.290: I/dalvikvm(18159): #21 pc 0004d556 /system/lib/libandroidruntime.so (android::AndroidRuntime::start(char const, char const*)+389) 12-11 10:46:52.290: I/dalvikvm(18159): #22 pc 00000dce /system/bin/app_process 12-11 10:46:52.290: I/dalvikvm(18159): #23 pc 00017120 /system/lib/libc.so (__libc_init+35) 12-11 10:46:52.290: I/dalvikvm(18159): at com.tuenti.voice.core.VoiceClient.nativeLogin(Native Method) 12-11 10:46:52.290: I/dalvikvm(18159): at com.tuenti.voice.core.VoiceClient.login(VoiceClient.java:121) .... 12-11 10:46:52.295: E/dalvikvm(18159): VM aborting 12-11 10:46:52.295: A/libc(18159): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1), thread 18159 (ger:VoipService)

lukeweber commented 11 years ago

Fixed. https://github.com/lukeweber/webrtc-jingle-client/commit/fd41b73a7fdbc78d8686cddb868f82405c9253d1