View Issue Details

IDProjectCategoryView StatusLast Update
0002231libextractorpluginspublic2012-03-20 08:33
ReporterLRNAssigned To 
PrioritylowSeverityfeatureReproducibilityN/A
Status newResolutionopen 
Product Version 
Target VersionFixed in Version 
Summary0002231: RIFF extractor is simply incorrect
DescriptionRIFF extractor does the following checks early on:
  if ((memcmp (&xdata[0],
               "RIFF", 4) != 0) || (memcmp (&xdata[8], "AVI ", 4) != 0))
    return 0;
  if (memcmp (&xdata[12], "LIST", 4) != 0)
    return 0;
  if (memcmp (&xdata[20], "hdrlavih", 8) != 0)
    return 0;

This is wrong. RIFF, like Matroska, consists of separate elements and sub-elements (called "chunks" and "subchunks"). One of the elements is LIST INFO, which contains various generic data (similar to tags), and is globally standardized (meaning that it's the same in all RIFF-based formats, including AVI, WAVE, ANI and others). The order in which chunks appear in a file is usually not standardized, and a robust RIFF parser should handle LIST INFO being both at the beginning and at the end of the file at the least.
Current RIFF extractor not only knows nothing about LIST INFO, but looks only for a LIST hdrl that starts with an avih chunk, discarding all other RIFF-based files.
TagsNo tags attached.

Issue History

Date Modified Username Field Change
2012-03-20 07:23 LRN New Issue
2012-03-20 08:33 LRN Note Added: 0005640