diff --git a/rtengine/myfile.h b/rtengine/myfile.h index c8ed35a85..2222eab37 100644 --- a/rtengine/myfile.h +++ b/rtengine/myfile.h @@ -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) {