--- e2fsprogs-1.39/lib/ext2fs/getsize.c.close-on-error 2005-09-06 11:40:14.000000000 +0200 +++ e2fsprogs-1.39/lib/ext2fs/getsize.c 2006-06-22 14:46:27.000000000 +0200 @@ -169,8 +169,10 @@ #ifdef DKIOCGETBLOCKCOUNT /* For Apple Darwin */ if (ioctl(fd, DKIOCGETBLOCKCOUNT, &size64) >= 0) { if ((sizeof(*retblocks) < sizeof(unsigned long long)) - && ((size64 / (blocksize / 512)) > 0xFFFFFFFF)) - return EFBIG; + && ((size64 / (blocksize / 512)) > 0xFFFFFFFF)) { + rc = EFBIG; + goto out; + } *retblocks = size64 / (blocksize / 512); goto out; } @@ -275,8 +277,10 @@ valid_offset (fd, 0); size64 = low + 1; if ((sizeof(*retblocks) < sizeof(unsigned long long)) - && ((size64 / blocksize) > 0xFFFFFFFF)) - return EFBIG; + && ((size64 / blocksize) > 0xFFFFFFFF)) { + rc = EFBIG; + goto out; + } *retblocks = size64 / blocksize; out: close(fd);