Fix to protect fseek() to go out of limits
Called by dcraw with some photos caused crashes
This commit is contained in:
parent
28d5c0f6c2
commit
543e4f81ca
@ -44,6 +44,7 @@ inline int feof (IMFILE* f) {
|
||||
}
|
||||
|
||||
inline void fseek (IMFILE* f, int p, int how) {
|
||||
int fpos = f->pos;
|
||||
|
||||
if (how==SEEK_SET)
|
||||
f->pos = p;
|
||||
@ -51,6 +52,9 @@ inline void fseek (IMFILE* f, int p, int how) {
|
||||
f->pos += p;
|
||||
else if (how==SEEK_END)
|
||||
f->pos = f->size-p;
|
||||
|
||||
if (f->pos < 0 || f->pos> f->size)
|
||||
f->pos = fpos;
|
||||
}
|
||||
|
||||
inline int fgetc (IMFILE* f) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user