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)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (s_read(fd, file->name, data, 4) < 0)
|
if (s_read(fd, file->name, data, 2) < 0)
|
||||||
goto abort;
|
goto abort;
|
||||||
if (btous(data, order) != JPEG_MARKER_SOI)
|
if (btous(data, order) != JPEG_MARKER_SOI)
|
||||||
goto abort;
|
goto abort;
|
||||||
if (btous(data + 2, order) != JPEG_MARKER_APP1)
|
if (s_read(fd, file->name, data, 4) < 0)
|
||||||
goto abort;
|
goto abort;
|
||||||
|
if (btous(data, order) == JPEG_MARKER_APP0){
|
||||||
if (s_read(fd, file->name, data, 2) < 0)
|
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;
|
goto abort;
|
||||||
len = btous(data, order);
|
len = btous(data + 2, order);
|
||||||
if (len < 8)
|
if (len < 8)
|
||||||
goto abort;
|
goto abort;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user