                 return false
             }
             
+            let stringLength = pointer.int32
+            
+            // Minimum a null terminator
+            guard stringLength >= 1, pointer[numericCast(stringLength &- 1 &+ 4)] == 0x00 else {
+                return false
+            }
+            
             // int32 contains the entire length, including null terminator
-            advance(numericCast(4 &+ pointer.int32))
+            advance(numericCast(4 &+ stringLength))
             
             return true
         }

            let type = pointer.pointee
            advance(1)
            
            // Key
            advance(storage.cString(at: offset))
            
            // Value
            switch type {
            case 0x00:
                return offset == count
            case .double:
                advance(8)
            case .string:

            }
        }
        
        return offset == count
    }
}
