mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-25 11:20:47 +01:00
Fix crash when receiving call with no corresponding identity key.
This commit is contained in:
@@ -19,6 +19,9 @@ package org.thoughtcrime.securesms.crypto;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import org.thoughtcrime.securesms.util.ParcelUtil;
|
||||
import org.whispersystems.libsignal.IdentityKey;
|
||||
import org.whispersystems.libsignal.InvalidKeyException;
|
||||
|
||||
@@ -40,19 +43,17 @@ public class IdentityKeyParcelable implements Parcelable {
|
||||
|
||||
private final IdentityKey identityKey;
|
||||
|
||||
public IdentityKeyParcelable(IdentityKey identityKey) {
|
||||
public IdentityKeyParcelable(@Nullable IdentityKey identityKey) {
|
||||
this.identityKey = identityKey;
|
||||
}
|
||||
|
||||
public IdentityKeyParcelable(Parcel in) throws InvalidKeyException {
|
||||
int serializedLength = in.readInt();
|
||||
byte[] serialized = new byte[serializedLength];
|
||||
byte[] serialized = ParcelUtil.readByteArray(in);
|
||||
|
||||
in.readByteArray(serialized);
|
||||
this.identityKey = new IdentityKey(serialized, 0);
|
||||
this.identityKey = serialized != null ? new IdentityKey(serialized, 0) : null;
|
||||
}
|
||||
|
||||
public IdentityKey get() {
|
||||
public @Nullable IdentityKey get() {
|
||||
return identityKey;
|
||||
}
|
||||
|
||||
@@ -63,7 +64,6 @@ public class IdentityKeyParcelable implements Parcelable {
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeInt(identityKey.serialize().length);
|
||||
dest.writeByteArray(identityKey.serialize());
|
||||
ParcelUtil.writeByteArray(dest, identityKey != null ? identityKey.serialize() : null);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user