Index: src/natools-smaz_generic.adb ================================================================== --- src/natools-smaz_generic.adb +++ src/natools-smaz_generic.adb @@ -198,10 +198,11 @@ if Verbatim_Length > 0 then Skip_Verbatim (Input, Input_Index, Verbatim_Length); Result := Result + Verbatim_Length; else + exit when not Is_Valid_Code (Dict, Code); Result := Result + Dict_Entry_Length (Dict, Code); end if; end loop; return Result; @@ -231,10 +232,12 @@ (Input, Input_Index, Output_Buffer (Output_Last + 1 .. Output_Last + Verbatim_Length)); Output_Last := Output_Last + Verbatim_Length; else + exit when not Is_Valid_Code (Dict, Code); + declare Decoded : constant String := Dict_Entry (Dict, Code); begin Output_Buffer (Output_Last + 1 .. Output_Last + Decoded'Length) := Decoded;