Previous Up

Errors and Warnings

Errors and warnings emitted by exifprobe are rarely fatal. Most are emitted on separate lines, although some warning messages may appear in-line. Most warning messages will begin with a `#' character. If color is enabled, all errors and warnings will be printed in red.

Errors

Almost all error messages report failure to read data. This will usually indicate a file which is corrupted in some way, often as a result of processing by software which didn't fully understand the original file format (particularly common with MakerNotes). These errors occur when the program reads an entry which provides a file offset from which to read additional data; if that file offset is larger than the size of the file, the read will fail with a message like

  FAILED to read unsigned short value at offset 15728734 (EOF)

The program will continue until no valid data can be found.

Warnings

Exifprobe issues a number of messages intended to alert you to potential problems or interesting anomalies in the structure or content of an image file. Most of the messages are reasonably self-explanatory and won't be mentioned here. Some of the messages report "errors" in conformance with a specification. Some report practices which do not violate a specification, but which may result in difficulties for display or editing software which are not special-cased to understand. In some cases the warnings may indicate that an image file has already been re-written by software which failed to understand. Many of the messages apply to MakerNotes or thumbnail images which may be damaged or subject to damage.

Here are a few messages of particular interest.

!0x000011c=284     :    # WARNING: values extend past end of MakerNote

An offset value in a MakerNote starts within the announced boundary of the note (as indicated by its start offset and size) but extends past the end of the note. This may indicate that the size of the note is incorrect, or that a following tag in the parent has overwritten a portion of the value.

!0x0f0005e=15728734:    # WARNING: values referenced outside of MakerNote

MakerNotes are intended to be self-contained sections, according to the Exif specification. Many notes, however, refer to data (usually thumbnails) which are written at arbitrary offsets outside the MakerNote. This means that software which modifies the file must be fully aware of the note format and rewrite offsets in the note if the note is moved, or if the thumbnail is moved, deleted, or modified.

 </MakerNote> # WARNING! MakerNote has next ifd offset 4278190110

The TIFF IFD format includes four bytes written at the end of the entries which must be interpreted as the offset to the next IFD in a chain. If there is no next IFD, the offset should be written as 0. Some makers don't bother to write the 0 value, since MakerNotes are never chained (not yet, anyway). This means that software which looks for a next ifd offset will read the following data and interpret it as an offset. Exifprobe will report a non-zero offset with the above message, but will not attempt to follow it. The propensity to omit next ifd offset is known and marked for some makers, for which exifprobe will simply report "no next ifd offset used" and avoid the above message.

 TAG_0X0010        : length 11492     # UNDEFINED (not dumped, use -U)

The comment portion of this message is informational, used to mark items with a TIFF type "UNDEFINED'' if the structure of the content is not known. The ``-U length" option to the program will cause "length" bytes of the content to be printed as a hex/ascii dump.

>0x00033b3=13235   :    <JPEG_BADSOI> (0x00d8)

JPEG "markers" are always two-byte markers with the high byte 0xff and the low byte identifying the marker type. The "start of image" maker (JPEG_SOI) has low byte 0xd8. At least one maker (Minolta) frequently writes thumbnail images with JPEG_SOI markers which have an arbitrary high byte (not 0xff). These markers are marked as above, giving the actual value of the marker. Note that a standard JPEG codec will probably refuse to display the image.

-0x000e1cf=57807   :    # End of JPEG Thumbnail (JPEG_EOI FOUND EARLY)

Most JPEG thumbnails or reduced-resolution images are included in sections which define the size of the data, If exifprobe fails to find the "end of image" (JPEG_EOI) marker at the end of the section it will scan back in the section trying to find a valid JPEG_EOI. It will report the offset of the actual JPEG_EOI (if found) and issue the above message. This is not an error; sections are often padded to two or four-byte boundaries. In some cases, the writer may have reserved space before knowing the actual length of the image, and reserved more than needed. In this case, the "padding" could be several kilobytes. The padding should contain bytes with all bits set (0xff), may contain all zeros, or could contain a secret note to the teacher. Perhaps exifprobe should offer to dump this padding.

*0x000012a=298     :          ---- End of values before end of PrintIM section

Some PrintIM sections reserve more space than needed for the number of values contained, This also sometimes occurs for MakerNotes. A portion of the unused space will be hex/ascii dumped.


Previous Up