Yep this fixes the problem I had with the strings being freed early.
See comments inline below. http://codereview.appspot.com/4843044/diff/1/gcc/cp/pph-streamer-in.c File gcc/cp/pph-streamer-in.c (right): http://codereview.appspot.com/4843044/diff/1/gcc/cp/pph-streamer-in.c#newcode157 gcc/cp/pph-streamer-in.c:157: memcpy (new_strtab, strtab, strtab_size); I don't think we need to memcpy, to be more efficient instead we can just change the way stream->encoder.r.file_data is read to only read the pph_file_header + body into it, and fread the strtab straight into new_strtab. This implies more logic when reading, but is potentially more efficient. http://codereview.appspot.com/4843044/