Edward O'Callaghan has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/72943 )
Change subject: layout.c: Ensure filename is always consistent in layout structure ......................................................................
layout.c: Ensure filename is always consistent in layout structure
Ensure construction and extraction filenames are symmetrical consistently within the layout structure.
Change-Id: I9a0c3130c0e7d88a8a69fd29362c338e20d2bae8 Signed-off-by: Edward O'Callaghan quasisec@google.com --- M layout.c 1 file changed, 24 insertions(+), 8 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/43/72943/1
diff --git a/layout.c b/layout.c index 4f02be6..2d7747e 100644 --- a/layout.c +++ b/layout.c @@ -194,6 +194,15 @@ return 1; }
+static char *sanitise_filename(char *filename) +{ + for (unsigned i = 0; filename[i]; i++) { + if (isspace((unsigned char)filename[i])) + filename[i] = '_'; + } + return filename; +} + /* returns 0 to indicate success, 1 to indicate failure */ static int include_region(struct flashrom_layout *const l, const char *name, const char *file) @@ -202,7 +211,7 @@ if (entry) { entry->included = true; if (file) - entry->file = strdup(file); + entry->file = sanitise_filename(strdup(file)); return 0; } return 1; @@ -342,18 +351,12 @@ { const struct flashrom_layout *const l = get_layout(flash); struct romentry *entry = NULL; - unsigned int i;
while ((entry = mutable_layout_next(l, entry))) { entry->included = true;
if (!entry->file) - entry->file = strdup(entry->region.name); - - for (i = 0; entry->file[i]; ++i) { - if (isspace((unsigned char)entry->file[i])) - entry->file[i] = '_'; - } + entry->file = sanitise_filename(strdup(entry->region.name)); } }