Fix crash when receiving call with no corresponding identity key.

This commit is contained in:
Cody Henthorne
2021-02-17 10:26:45 -05:00
committed by GitHub
parent a1457d22d6
commit 214cb25d1b
5 changed files with 31 additions and 10 deletions

View File

@@ -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);
}
}