Gif_ReadRecord(const Gif_Record *gifrec)
{
  return Gif_FullReadRecord(gifrec, GIF_READ_UNCOMPRESSED, 0, 0);
}

The product calls free() twice on the same memory address, potentially leading to modification of unexpected memory locations.