summaryrefslogtreecommitdiffstats
path: root/layout.c
diff options
context:
space:
mode:
authorUwe Hermann <uwe@hermann-uwe.de>2008-12-22 16:42:59 +0000
committerUwe Hermann <uwe@hermann-uwe.de>2008-12-22 16:42:59 +0000
commit58783e395f7f46c04448eee4c0cbde26bffd7fc5 (patch)
treebb2cdf585ae0b6943587505ecb11079d5c6a0324 /layout.c
parent0ab42985587bf1dc58ab0b90cba5a2e135a6776b (diff)
downloadast2050-flashrom-58783e395f7f46c04448eee4c0cbde26bffd7fc5.zip
ast2050-flashrom-58783e395f7f46c04448eee4c0cbde26bffd7fc5.tar.gz
If you pass a bogus layout file to the -l option flashrom will segfault
Fix that by throwing an error instead. Corresponding to flashrom svn r370 and coreboot v2 svn r3834. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Peter Stuge <peter@stuge.se>
Diffstat (limited to 'layout.c')
-rw-r--r--layout.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/layout.c b/layout.c
index ef09582..e2be12e 100644
--- a/layout.c
+++ b/layout.c
@@ -156,6 +156,11 @@ int read_romlayout(char *name)
#endif
tstr1 = strtok(tempstr, ":");
tstr2 = strtok(NULL, ":");
+ if (!tstr1 || !tstr2) {
+ fprintf(stderr, "Error parsing layout file.\n");
+ fclose(romlayout);
+ return 1;
+ }
rom_entries[romimages].start = strtol(tstr1, (char **)NULL, 16);
rom_entries[romimages].end = strtol(tstr2, (char **)NULL, 16);
rom_entries[romimages].included = 0;
OpenPOWER on IntegriCloud