From be915f9f16165ad8fbcb3f371b4834533e87a141 Mon Sep 17 00:00:00 2001 From: Romein van Buren Date: Thu, 12 Jun 2025 11:54:24 +0200 Subject: [PATCH] Return nil if dict path does not exist --- fmp/fmp_table.go | 3 +++ fmp/fmp_type.go | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/fmp/fmp_table.go b/fmp/fmp_table.go index 5b2bf6c..0166ad4 100644 --- a/fmp/fmp_table.go +++ b/fmp/fmp_table.go @@ -3,6 +3,9 @@ package fmp func (ctx *FmpFile) Tables() []*FmpTable { tables := make([]*FmpTable, 0) metaDict := ctx.Dictionary.get([]uint64{4, 1, 7}) + if metaDict == nil { + return tables + } for _, meta := range *metaDict.Children { name := decodeByteSeq(meta.Children.get([]uint64{16}).Value) table := &FmpTable{Name: name} diff --git a/fmp/fmp_type.go b/fmp/fmp_type.go index 3f53ce5..c9b4114 100644 --- a/fmp/fmp_type.go +++ b/fmp/fmp_type.go @@ -47,7 +47,7 @@ func (dict *FmpDict) get(path []uint64) *FmpDictEntry { for i, key := range path { _, ok := (*dict)[key] if !ok { - (*dict)[key] = &FmpDictEntry{Children: &FmpDict{}} + return nil } if i == len(path)-1 {