[coreboot-gerrit] New patch to review for coreboot: 2ed4a87 romcc: avoid use-after-free

Patrick Georgi (patrick@georgi-clan.de) gerrit at coreboot.org
Fri Sep 5 23:57:27 CEST 2014


Patrick Georgi (patrick at georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6846

-gerrit

commit 2ed4a87c71c6749887c3f9111c434b38652e5182
Author: Patrick Georgi <patrick at georgi-clan.de>
Date:   Fri Sep 5 23:54:04 2014 +0200

    romcc: avoid use-after-free
    
    Windows bugchecks on this for a while, so we ifndef'd the free() call out.
    Now some Linuxes (depending on their glibc) also fail on it, so just
    remove the call altogether at the cost of some leaked memory (couple
    hundred kilobytes) because tracking down the precise fix is too hard.
    
    In case someone wants to fix it, valgrind sees the issues, so
    revert this change and work on romcc's memory management until valgrind
    is happy.
    To get a fix in, provide a good explanation why your change is actually
    the right way to fix it - for silencing valgrind, this change will do.
    
    Change-Id: Iae3f847e09a0d7bcb8bb4f50983a1b0727570b23
    Signed-off-by: Patrick Georgi <patrick at georgi-clan.de>
---
 util/romcc/romcc.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/util/romcc/romcc.c b/util/romcc/romcc.c
index 01d836c..ad90a1e 100644
--- a/util/romcc/romcc.c
+++ b/util/romcc/romcc.c
@@ -15161,9 +15161,6 @@ static void free_basic_block(struct compile_state *state, struct block *block)
 		}
 	}
 	memset(block, -1, sizeof(*block));
-#ifndef WIN32
-	xfree(block);
-#endif
 }
 
 static void free_basic_blocks(struct compile_state *state,



More information about the coreboot-gerrit mailing list