]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
disk/AFsplitter: check argument validity before doing any allocs.
authorVladimir Serbinenko <phcoder@gmail.com>
Sat, 24 Jan 2015 20:33:30 +0000 (21:33 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Sat, 24 Jan 2015 20:33:30 +0000 (21:33 +0100)
This avoids possible memory leaks.

Found by: Coverity scan.

grub-core/disk/AFSplitter.c

index 7e1bd574835e75b0ee9752f414531ab6ff4b198f..f5a8ddc61f4dcf57f74aa2a0a81a14404daef630 100644 (file)
@@ -72,13 +72,13 @@ AF_merge (const gcry_md_spec_t * hash, grub_uint8_t * src, grub_uint8_t * dst,
   grub_size_t i;
   grub_uint8_t *bufblock;
 
+  if (hash->mdlen > GRUB_CRYPTO_MAX_MDLEN || hash->mdlen == 0)
+    return GPG_ERR_INV_ARG;
+
   bufblock = grub_zalloc (blocksize);
   if (bufblock == NULL)
     return GPG_ERR_OUT_OF_MEMORY;
 
-  if (hash->mdlen > GRUB_CRYPTO_MAX_MDLEN || hash->mdlen == 0)
-    return GPG_ERR_INV_ARG;
-
   grub_memset (bufblock, 0, blocksize);
   for (i = 0; i < blocknumbers - 1; i++)
     {