Skip to content

Commit

Permalink
Check identical IFD offsets. Fixes #80
Browse files Browse the repository at this point in the history
  • Loading branch information
oozcitak committed Dec 1, 2020
1 parent 124304d commit 227e86b
Showing 1 changed file with 24 additions and 3 deletions.
27 changes: 24 additions & 3 deletions ExifLibrary/JPEGFile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -611,17 +611,38 @@ private void ReadExifAPP1()
if (currentifd == IFD.Zeroth && tag == 0x8769)
{
int exififdpointer = (int)conv.ToUInt32(value, 0);
ifdqueue.Add(exififdpointer, IFD.EXIF);
if (ifdqueue.ContainsKey(exififdpointer))
{
Errors.Add(new ImageError(Severity.Warning, "IFD queue already contains an Exif IFD pointer."));
}
else
{
ifdqueue.Add(exififdpointer, IFD.EXIF);
}
}
else if (currentifd == IFD.Zeroth && tag == 0x8825)
{
int gpsifdpointer = (int)conv.ToUInt32(value, 0);
ifdqueue.Add(gpsifdpointer, IFD.GPS);
if (ifdqueue.ContainsKey(gpsifdpointer))
{
Errors.Add(new ImageError(Severity.Warning, "IFD queue already contains a GPS IFD pointer."));
}
else
{
ifdqueue.Add(gpsifdpointer, IFD.GPS);
}
}
else if (currentifd == IFD.EXIF && tag == 0xa005)
{
int interopifdpointer = (int)conv.ToUInt32(value, 0);
ifdqueue.Add(interopifdpointer, IFD.Interop);
if (ifdqueue.ContainsKey(interopifdpointer))
{
Errors.Add(new ImageError(Severity.Warning, "IFD queue already contains an Interop IFD pointer."));
}
else
{
ifdqueue.Add(interopifdpointer, IFD.Interop);
}
}

// Save the offset to maker note data
Expand Down

0 comments on commit 227e86b

Please sign in to comment.