From 5285dd166560c9a9496d74b388eacb3bd4556135 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 10 Oct 2023 21:04:16 -0400 Subject: [PATCH] Fix NPE in account record proto parsing. --- .../signalservice/api/storage/SignalAccountRecord.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/storage/SignalAccountRecord.java b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/storage/SignalAccountRecord.java index ac097c15cd..e9fee4912e 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/storage/SignalAccountRecord.java +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/storage/SignalAccountRecord.java @@ -49,10 +49,15 @@ public final class SignalAccountRecord implements SignalRecord { this.profileKey = OptionalUtil.absentIfEmpty(proto.profileKey); this.avatarUrlPath = OptionalUtil.absentIfEmpty(proto.avatarUrlPath); this.pinnedConversations = new ArrayList<>(proto.pinnedConversations.size()); - this.payments = new Payments(proto.payments.enabled, OptionalUtil.absentIfEmpty(proto.payments.entropy)); this.defaultReactions = new ArrayList<>(proto.preferredReactionEmoji); this.subscriber = new Subscriber(proto.subscriberCurrencyCode, proto.subscriberId.toByteArray()); + if (proto.payments != null) { + this.payments = new Payments(proto.payments.enabled, OptionalUtil.absentIfEmpty(proto.payments.entropy)); + } else { + this.payments = new Payments(false, Optional.empty()); + } + for (AccountRecord.PinnedConversation conversation : proto.pinnedConversations) { pinnedConversations.add(PinnedConversation.fromRemote(conversation)); }