Jonathon Hall has uploaded this change for review.

View Change

flashrom.c: Don't crash when programmer parameter string is NULL

After commit 3b8b93e, invoking flashrom with no programmer parameters
would crash due to calling strdup(NULL) in programmer_init().

extract_param() also crashed if the programmer parameter string was
NULL.

Test: Build flashrom on Librem Mini v2, test with -p internal,
-p internal:laptop=this_is_not_a_laptop, verify no crashes. Read
firmware. Also tested with -p ft2232_spi:type=2232H, verify type
parameter is respected.

Change-Id: Ie13bdcf63c23d912dc9b774ae279f1ae5883e287
Signed-off-by: Jonathon Hall <jonathon.hall@puri.sm>
---
M flashrom.c
1 file changed, 26 insertions(+), 2 deletions(-)

git pull ssh://review.coreboot.org:29418/flashrom refs/changes/19/67619/1
diff --git a/flashrom.c b/flashrom.c
index ec16d04..c0f4289 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -168,7 +168,10 @@
programmer_may_write = true;

msg_pdbg("Initializing %s programmer\n", prog->name);
- const struct programmer_cfg cfg = { .params = strdup(param) };
+ struct programmer_cfg cfg = { .params = NULL };
+ if(param) {
+ cfg.params = strdup(param);
+ }
int ret = prog->init(&cfg);
ret = get_param_residue(cfg.params, ret);
free(cfg.params);
@@ -243,7 +246,7 @@
return NULL;
}
/* No programmer parameters given. */
- if (*haystack == NULL)
+ if (haystack == NULL || *haystack == NULL)
return NULL;
param_pos = strstr(*haystack, needle);
do {

To view, visit change 67619. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-Change-Id: Ie13bdcf63c23d912dc9b774ae279f1ae5883e287
Gerrit-Change-Number: 67619
Gerrit-PatchSet: 1
Gerrit-Owner: Jonathon Hall <jonathon.hall@puri.sm>
Gerrit-MessageType: newchange