- Jul 26, 2021
- Jul 24, 2021
-
-
Sumit Ray authored
-
Sumit Ray authored
Added object stream indexing code. Seems unrelated but the set of files that we have trouble with changed. Many of the files now have issues with flatedecoder complaing of a bad header, which amy mean that somehow h_tell_m in p_take_m is not quite returning the correct location.
-
- Jul 23, 2021
- Jul 22, 2021
-
-
pompolic authored
- off by one in act_partial3group led to uninitialized memory ending up in parse result - Check the numerical value of the resulting HBytes against A85GRPMAX in validations - Mark printfs as debug output
-
pompolic authored
- off by one error in for loop - fix error introduced in previous commit (too many arguments to printf)
-
Sumit Ray authored
-
pompolic authored
-
- Jul 21, 2021
-
-
Sumit Ray authored
-
- Jul 20, 2021
-
-
Sumit Ray authored
-
- Jul 19, 2021
-
-
pompolic authored
-
- Jul 17, 2021
- Jul 16, 2021
- Jul 15, 2021
- Jul 10, 2021
-
-
Sumit Ray authored
-
- Jul 09, 2021
-
-
Sumit Ray authored
-
- Jul 08, 2021
-
-
Sumit Ray authored
-
- Jul 05, 2021
-
-
Sumit Ray authored
-
- Jul 04, 2021
- Jul 01, 2021
-
-
Sumit Ray authored
-
- Jun 29, 2021
-
-
Sumit Ray authored
-
- Jun 23, 2021
- Mar 05, 2021
-
-
pompolic authored
- Mar 04, 2021
-
-
xentrac authored
-
- Feb 26, 2021
-
-
xentrac authored
It’s probably a bug that our dictionary parser is inserting a key-value “pair” into our dictionary structure which just has a key but no value, but the proximal cause of the crash was that `dictentry` is reading off the end of the key-value pair and getting a null pointer. This fixes the bug revealed by the instigator in input file assertion-a-used-failed.
-
xentrac authored
In instigator-crashes/aux-xrefs-segfault an invalid flate-encoded stream was producing this behavior: inflate: invalid distance too far back (-3) parse error in stream (XRef) ../instigator-crashes/aux-xrefs-segfault: error parsing xref section at position 249939 (0x3d053) Program received signal SIGSEGV, Segmentation fault. 0x000055555555d91f in lookup_xref (aux=0x7fffffffdf60, nr=4, gen=0) at pdf.c:1249 1249 HCountedArray *subs = H_INDEX_SEQ(aux->xrefs[i], 0); What was happening was that `act_ks_value`, indirectly invoked by `parse_xrefs`, invoked `decode_stream`, which produced the "inflate:" message and returned NULL; so `act_ks_value` produced the "parse error in stream" message and returned an HParseResult of that NULL pointer. Higher up the stack `act_xrstm` packs this NULL pointer into element 0 of a new `h_sequence`. `parse_xrefs` was happily storing this `h_sequence` into `aux->xrefs[0]`, then blithely continuing to the next loop iteration, at which point it would report "error parsing xref section" and return back to main(). However, this did not abort parsing the file! main() was continuing on to attempt to parse the PDF file as a whole, but the first time the resulting parse tried to `lookup_xref`, that lookup would attempt to iterate over the xrefs section in the file, checking to see if the xref number belonged to any of them. The line of code above then segfaulted while attempting to assert that the NULL was actually a valid `h_sequence` pointer. So this patch simply prevents `parse_xrefs` from treating the failed xrefs section as valid. The result is that, as before, the parse exits shortly because it can't follow any xrefs — but now without segfaulting! inflate: invalid distance too far back (-3) parse error in stream (XRef) ../instigator-crashes/aux-xrefs-segfault: error parsing xref section at position 255242 (0x3e50a) VIOLATION[1]@433 (0x1b1): Missing endobj token (severity=1) ../instigator-crashes/aux-xrefs-segfault: no parse VIOLATION[1]@433 (0x1b1): Missing endobj token (severity=1) ../instigator-crashes/aux-xrefs-segfault: error after position 433 (0x1b1) [Inferior 1 (process 626584) exited with code 01]
-