inhal can produce files that aren't recognized by exhal. They contain reverse backwards references with a size greater than their offset, apparently reading unrelated data in front of the buffer. This does not occur when -fast is passed to inhal, as code responsible for finding a reverse backref is skipped.
This might be because inhal uses an uninitialized value in line 276, as valgrind reports.
when compiled with -DDEBUG_OUT, one might be able to read
write_backref: writing backref to 7, size 16 (method 2)
Interestingly this specific line of code has existed forever, but i didn't have any issues with exhal until the latest changes. I'd suggest adding a check that reads
inhal can produce files that aren't recognized by exhal. They contain reverse backwards references with a size greater than their offset, apparently reading unrelated data in front of the buffer. This does not occur when -fast is passed to inhal, as code responsible for finding a reverse backref is skipped. This might be because inhal uses an uninitialized value in line 276, as valgrind reports.
Steps to reproduce:
when compiled with -DDEBUG_OUT, one might be able to read
Interestingly this specific line of code has existed forever, but i didn't have any issues with exhal until the latest changes. I'd suggest adding a check that reads
before the backref_candidate() call.