cbfstool: Prevent file name to be corrupted by basename().
Calling basename(3) may modify content. We should allocate another buffer to prevent corrupting input buffer (full file path names). Change-Id: Ib4827f887542596feef16e7829b00444220b9922 Signed-off-by: Hung-Te Lin <hungte@chromium.org> Reviewed-on: http://review.coreboot.org/2203 Reviewed-by: Ronald G. Minnich <rminnich@gmail.com> Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
parent
3414234f5a
commit
5a9f45c757
|
@ -273,11 +273,13 @@ uint64_t intfiletype(const char *name)
|
||||||
|
|
||||||
void print_cbfs_directory(const char *filename)
|
void print_cbfs_directory(const char *filename)
|
||||||
{
|
{
|
||||||
|
char *name = strdup(filename);
|
||||||
printf
|
printf
|
||||||
("%s: %d kB, bootblocksize %d, romsize %d, offset 0x%x\n"
|
("%s: %d kB, bootblocksize %d, romsize %d, offset 0x%x\n"
|
||||||
"alignment: %d bytes, architecture: %s\n\n",
|
"alignment: %d bytes, architecture: %s\n\n",
|
||||||
basename((char *)filename), romsize / 1024, ntohl(master_header->bootblocksize),
|
basename(name), romsize / 1024, ntohl(master_header->bootblocksize),
|
||||||
romsize, ntohl(master_header->offset), align, arch_to_string(arch));
|
romsize, ntohl(master_header->offset), align, arch_to_string(arch));
|
||||||
|
free(name);
|
||||||
printf("%-30s %-10s %-12s Size\n", "Name", "Offset", "Type");
|
printf("%-30s %-10s %-12s Size\n", "Name", "Offset", "Type");
|
||||||
uint32_t current = phys_start;
|
uint32_t current = phys_start;
|
||||||
while (current < phys_end) {
|
while (current < phys_end) {
|
||||||
|
|
Loading…
Reference in New Issue