From bc0f663e927f5f8667fcbfa48bd948eb2640ee07 Mon Sep 17 00:00:00 2001 From: Pali Rohár Date: Sat, 17 Dec 2016 03:00:12 +0100 Subject: cal: Fix check for lseek errors --- src/cal.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/cal.c b/src/cal.c index c6af8e2..2edd0b5 100644 --- a/src/cal.c +++ b/src/cal.c @@ -73,6 +73,8 @@ int cal_init_file(const char * file, struct cal ** cal_out) { struct stat st; #ifdef __linux__ mtd_info_t mtd_info; +#else + off_t lsize = 0; #endif if ( stat(file, &st) != 0 ) @@ -90,11 +92,12 @@ int cal_init_file(const char * file, struct cal ** cal_out) { if ( ioctl(fd, BLKGETSIZE64, &blksize) != 0 ) goto err; #else - blksize = lseek(fd, 0, SEEK_END); - if ( blksize == (off_t)-1 ) + lsize = lseek(fd, 0, SEEK_END); + if ( lsize == (off_t)-1 ) goto err; if ( lseek(fd, 0, SEEK_SET) == (off_t)-1 ) goto err; + blksize = lsize; #endif if ( blksize > SSIZE_MAX ) goto err; -- cgit v1.2.3