crash with «Unsupported legacy version: 0» when key exchanging with newer version instead of warning the user
Bug description
It's happened few weeks ago when a contact upgraded it's Silence quicker than me. We had to do a key exchange (not sure if related to the upgrade I think not)
How to reproduce
- have v0.15.13
- click on the key exchange message sent by have v0.15.14
Actual result: crash Expected result: if not backward/forward compatible, it should tell the user update. And warn that F-Droid can have a several days delay to provide an updated version.
Device info
- Device: Nexus 5
- Android version: 7.1.2 (LineageOS for microG 14.1)
- Silence version: v0.15.13
Link to debug log
09-01 14:27:58.140 5893 5893 D AndroidRuntime: Shutting down VM
09-01 14:27:58.153 5893 5893 E AndroidRuntime: FATAL EXCEPTION: main
09-01 14:27:58.153 5893 5893 E AndroidRuntime: Process: org.smssecure.smssecure, PID: 5893
09-01 14:27:58.153 5893 5893 E AndroidRuntime: java.lang.AssertionError: org.whispersystems.libsignal.LegacyMessageException: Unsupported legacy version: 0
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at org.smssecure.smssecure.ReceiveKeyDialog.<init>(ReceiveKeyDialog.java:90)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at org.smssecure.smssecure.ConversationItem.handleKeyExchangeClicked(ConversationItem.java:538)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at org.smssecure.smssecure.ConversationItem.access$1900(ConversationItem.java:92)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at org.smssecure.smssecure.ConversationItem$ClickListener.onClick(ConversationItem.java:677)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at android.view.View.performClick(View.java:5637)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at org.smssecure.smssecure.ConversationItem$PassthroughClickListener.onClick(ConversationItem.java:650)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at android.view.View.performClick(View.java:5637)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at android.view.View$PerformClick.run(View.java:22433)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:751)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6186)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: Caused by: org.whispersystems.libsignal.LegacyMessageException: Unsupported legacy version: 0
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at org.smssecure.smssecure.protocol.KeyExchangeMessage.<init>(KeyExchangeMessage.java:75)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at org.smssecure.smssecure.ReceiveKeyDialog.getIdentityKey(ReceiveKeyDialog.java:158)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: at org.smssecure.smssecure.ReceiveKeyDialog.<init>(ReceiveKeyDialog.java:78)
09-01 14:27:58.153 5893 5893 E AndroidRuntime: ... 14 more
09-01 14:27:58.155 817 1681 W ActivityManager: Force finishing activity org.smssecure.smssecure/.ConversationActivity