Fixed image orientation if a JFIF APP0 segment is present in a JPEG header.
This commit is contained in:
parent
745eacbcf5
commit
5dea695c71
16
exif.c
16
exif.c
|
@ -73,16 +73,22 @@ int exif_orientation(const fileinfo_t *file)
|
|||
if (fd < 0)
|
||||
return -1;
|
||||
|
||||
if (s_read(fd, file->name, data, 4) < 0)
|
||||
if (s_read(fd, file->name, data, 2) < 0)
|
||||
goto abort;
|
||||
if (btous(data, order) != JPEG_MARKER_SOI)
|
||||
goto abort;
|
||||
if (btous(data + 2, order) != JPEG_MARKER_APP1)
|
||||
if (s_read(fd, file->name, data, 4) < 0)
|
||||
goto abort;
|
||||
|
||||
if (s_read(fd, file->name, data, 2) < 0)
|
||||
if (btous(data, order) == JPEG_MARKER_APP0){
|
||||
len = btous(data + 2, order);
|
||||
if (s_read(fd, file->name, data, len - 2) < 0)
|
||||
goto abort;
|
||||
if (s_read(fd, file->name, data, 4) < 0)
|
||||
goto abort;
|
||||
}
|
||||
if (btous(data, order) != JPEG_MARKER_APP1)
|
||||
goto abort;
|
||||
len = btous(data, order);
|
||||
len = btous(data + 2, order);
|
||||
if (len < 8)
|
||||
goto abort;
|
||||
|
||||
|
|
Loading…
Reference in a new issue