env_nand: fix env memory release
authorderek@siconix.com <derek@siconix.com>
Mon, 26 Jan 2009 21:08:17 +0000 (14:08 -0700)
committerScott Wood <scottwood@freescale.com>
Fri, 6 Feb 2009 22:06:53 +0000 (16:06 -0600)
This fixes a bug that tmp environment memory not being released.

Signed-off-by: Derek Ou <dou@siconix.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
common/env_nand.c

index 8af9e74aac5717317277329deec4766d361c06fb..e490775ecf5af3fe49ac83780c5b83f8169a9c46 100644 (file)
@@ -304,9 +304,11 @@ void env_relocate_spec (void)
        crc1_ok = (crc32(0, tmp_env1->data, ENV_SIZE) == tmp_env1->crc);
        crc2_ok = (crc32(0, tmp_env2->data, ENV_SIZE) == tmp_env2->crc);
 
-       if(!crc1_ok && !crc2_ok)
+       if(!crc1_ok && !crc2_ok) {
+               free(tmp_env1);
+               free(tmp_env2);
                return use_default();
-       else if(crc1_ok && !crc2_ok)
+       else if(crc1_ok && !crc2_ok)
                gd->env_valid = 1;
        else if(!crc1_ok && crc2_ok)
                gd->env_valid = 2;