9
0
Fork 0

lseek: tighten error checking and allow negative offsets for SEEK_END

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Uwe Kleine-König 2017-03-02 15:37:03 +01:00 committed by Sascha Hauer
parent 711bb18961
commit 2eacc573df
1 changed files with 4 additions and 2 deletions

View File

@ -910,6 +910,8 @@ loff_t lseek(int fildes, loff_t offset, int whence)
case SEEK_SET:
if (f->size != FILE_SIZE_STREAM && offset > f->size)
goto out;
if (offset < 0)
goto out;
pos = offset;
break;
case SEEK_CUR:
@ -918,9 +920,9 @@ loff_t lseek(int fildes, loff_t offset, int whence)
pos = f->pos + offset;
break;
case SEEK_END:
if (offset)
if (offset > 0)
goto out;
pos = f->size;
pos = f->size + offset;
break;
default:
goto out;