From 638667efbb3d7c11888f708ee582bf3317603dd1 Mon Sep 17 00:00:00 2001 From: Mis012 Date: Thu, 24 Nov 2022 23:11:59 +0100 Subject: [PATCH] src/arsc_parser: avoid some NULL dereferences (TODO: should these ever happen or are we doing something wrong?) --- .../com/hq/arscresourcesparser/ArscResourcesParser.java | 5 ++++- .../hq/arscresourcesparser/arsc/ResTablePackageChunk.java | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/arsc_parser/com/hq/arscresourcesparser/ArscResourcesParser.java b/src/arsc_parser/com/hq/arscresourcesparser/ArscResourcesParser.java index 8bb59471..70e190b1 100644 --- a/src/arsc_parser/com/hq/arscresourcesparser/ArscResourcesParser.java +++ b/src/arsc_parser/com/hq/arscresourcesparser/ArscResourcesParser.java @@ -81,6 +81,9 @@ public class ArscResourcesParser { System.out.println("¯¯ in getResourceId"); ResTableValueEntry res = (ResTableValueEntry)arscFile.getResourceByName(name, typeId); - return res.entryId; + if(res != null) + return res.entryId; + else + return 0; } } diff --git a/src/arsc_parser/com/hq/arscresourcesparser/arsc/ResTablePackageChunk.java b/src/arsc_parser/com/hq/arscresourcesparser/arsc/ResTablePackageChunk.java index 39a0e252..8bc939cf 100644 --- a/src/arsc_parser/com/hq/arscresourcesparser/arsc/ResTablePackageChunk.java +++ b/src/arsc_parser/com/hq/arscresourcesparser/arsc/ResTablePackageChunk.java @@ -132,6 +132,10 @@ public class ResTablePackageChunk { System.out.println("¯¯ in ResTablePackageChunk - getResourceByName"); List typeList = typeInfoIndexer.get(typeId); // The first chunk in typeList should be ResTableTypeSpecChunk + if(typeList == null) { + System.out.println("¯¯ typeList is null, this is sus..."); + return null; + } for (int i = 1; i < typeList.size(); ++i) { if (typeList.get(i) instanceof ResTableTypeInfoChunk) { ResTableTypeInfoChunk x = (ResTableTypeInfoChunk) typeList.get(i);