From: Vladimir Serbinenko Date: Sat, 21 Dec 2013 13:28:14 +0000 (+0100) Subject: * util/misc.c (grub_util_get_image_size): Check for overflow. X-Git-Tag: grub-2.02-beta2~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74763e9615561233ec6dbce2cf3f39036cb46ecf;p=thirdparty%2Fgrub.git * util/misc.c (grub_util_get_image_size): Check for overflow. --- diff --git a/ChangeLog b/ChangeLog index ecf8ba19b..5ab866fbf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-12-21 Vladimir Serbinenko + + * util/misc.c (grub_util_get_image_size): Check for overflow. + 2013-12-21 Vladimir Serbinenko * grub-core/disk/raid6_recover.c (grub_raid_block_mulx): Use grub_size_t diff --git a/util/misc.c b/util/misc.c index c5541ca95..b0e023ecd 100644 --- a/util/misc.c +++ b/util/misc.c @@ -79,6 +79,7 @@ grub_util_get_image_size (const char *path) { FILE *f; size_t ret; + off_t sz; f = grub_util_fopen (path, "rb"); @@ -87,7 +88,10 @@ grub_util_get_image_size (const char *path) fseeko (f, 0, SEEK_END); - ret = ftello (f); + sz = ftello (f); + if (sz != (size_t) sz) + grub_util_error (_("file `%s' is too big"), path); + ret = (size_t) sz; fclose (f);