diff --git a/components/fpexif/fpeexifreadwrite.pas b/components/fpexif/fpeexifreadwrite.pas index 00550dee7..fb4ad9b43 100644 --- a/components/fpexif/fpeexifreadwrite.pas +++ b/components/fpexif/fpeexifreadwrite.pas @@ -331,6 +331,13 @@ begin exit; end; + if (ifdRec.TagID = 0) and (ifdRec.DataType = 0) and (ifdRec.DataCount = 0) and (ifdRec.DataValue = 0) then + begin + // This is an empty IFD entry as found in images of the YUNEEC CGO3 camera + AStream.Position := AStream.Position + n; + Continue; + end; + ifdRec.TagID := FixEndian16(ifdRec.TagID); ifdRec.DataType := FixEndian16(ifdRec.DataType); if not (ifdRec.DataType in [1..ord(High(TTagType))]) then begin