Hi,
attached is a small patch for phoenix part in bios_extract to replace
terrible filenames containing '*', '?' or '<'
also fixes 2 bufferoverflows in the filename handling.
mazzoo
diff --git a/phoenix.c b/phoenix.c
index dd630a1..83b86b4 100644
--- a/phoenix.c
+++ b/phoenix.c
@@ -61,9 +61,9 @@ PhoenixModuleNames[] = {
{'H', "tcpa_H"}, /* TCPA (Trusted Computing), USBKCLIB? */
{'K', "tcpa_K"}, /* TCPA (Trusted Computing), "AUTH"? */
{'Q', "tcpa_Q"}, /* TCPA (Trusted Computing), "SROM"? */
- {'<', "tcpa_<"},
- {'*', "tcpa_*"},
- {'?', "tcpa_?"},
+ {'<', "tcpa_LT"},
+ {'*', "tcpa_AS"},
+ {'?', "tcpa_QM"},
{'J', "SmartCardPAS"},
};
@@ -117,10 +117,10 @@ PhoenixModule(unsigned char *BIOSImage, int BIOSLength, int Offset)
ModuleName = PhoenixModuleNameGet(Module->Type);
if (ModuleName) {
- filename = malloc(strlen(ModuleName) + 7);
+ filename = malloc(strlen(ModuleName) + 7 + 3);
sprintf(filename, "%s_%1d.rom", ModuleName, Module->Id);
} else {
- filename = malloc(9);
+ filename = malloc(9 + 3);
sprintf(filename, "%02X_%1d.rom", Module->Type, Module->Id);
}
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot