29 lines
892 B
Diff
29 lines
892 B
Diff
|
--- 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);
|