From 4d7af8038980702aa9229230de8fffc3243ed1fe Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Mon, 26 Jan 2026 06:56:52 -0600 Subject: [PATCH] fix(service): Add error handling for invalid StoreForward++ packets (#4319) Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com> --- .../java/com/geeksville/mesh/service/MeshDataHandler.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshDataHandler.kt b/app/src/main/java/com/geeksville/mesh/service/MeshDataHandler.kt index e975fee09..d39a0f5f9 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshDataHandler.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshDataHandler.kt @@ -21,6 +21,7 @@ import co.touchlab.kermit.Logger import com.geeksville.mesh.BuildConfig import com.geeksville.mesh.concurrent.handledLaunch import com.geeksville.mesh.repository.radio.InterfaceId +import com.google.protobuf.InvalidProtocolBufferException import com.meshtastic.core.strings.getString import dagger.Lazy import kotlinx.coroutines.CoroutineScope @@ -198,7 +199,13 @@ constructor( @Suppress("LongMethod") private fun handleStoreForwardPlusPlus(packet: MeshPacket) { - val sfpp = MeshProtos.StoreForwardPlusPlus.parseFrom(packet.decoded.payload) + val sfpp = + try { + MeshProtos.StoreForwardPlusPlus.parseFrom(packet.decoded.payload) + } catch (e: InvalidProtocolBufferException) { + Logger.e(e) { "Failed to parse StoreForwardPlusPlus packet" } + return + } Logger.d { "Received StoreForwardPlusPlus packet: $sfpp" } when (sfpp.sfppMessageType) {