mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 15:12:36 +02:00
layout: Check return values for strdup in register_include_arg
strdup return values should be checked for NULL to catch the potential error case of out of memory. This patch re-writes ternary conditionals so that strdup return values could be checked for all branches fof execution. Follow up on commit 45d50a101e8073191e6d88143990ed91d3bfe815 Ticket: https://ticket.coreboot.org/issues/372 Original-Signed-off-by: Anastasia Klimchuk <aklm@chromium.org> Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/70006 Original-Reviewed-by: Edward O'Callaghan <quasisec@chromium.org> Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Original-Reviewed-by: David Hendricks <david.hendricks@gmail.com> Original-Reviewed-by: Angel Pons <th3fanbus@gmail.com> (cherry picked from commit 59ce5615b768fe9d4d2506cb13c6781cd83a12e6) Change-Id: I6c22196be6847a8c9704f1de936604a51b4b8a28 Signed-off-by: Evan Benn <evanbenn@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/70322 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Anastasia Klimchuk <aklm@chromium.org> Reviewed-by: David Hendricks <david.hendricks@gmail.com> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
parent
124464da22
commit
3b0d05e7a2
20
layout.c
20
layout.c
@ -120,7 +120,7 @@ int register_include_arg(struct layout_include_args **args, const char *arg)
|
||||
struct layout_include_args *tmp;
|
||||
char *colon;
|
||||
char *name;
|
||||
char *file;
|
||||
char *file = NULL; /* file is optional, so defaults to NULL */
|
||||
|
||||
if (arg == NULL) {
|
||||
msg_gerr("<NULL> is a bad region name.\n");
|
||||
@ -133,8 +133,22 @@ int register_include_arg(struct layout_include_args **args, const char *arg)
|
||||
msg_gerr("Missing filename parameter in %s\n", arg);
|
||||
return 1;
|
||||
}
|
||||
name = colon ? strndup(arg, colon - arg) : strdup(arg);
|
||||
file = colon ? strdup(colon + 1) : NULL;
|
||||
|
||||
if (colon) {
|
||||
name = strndup(arg, colon - arg);
|
||||
if (!name) {
|
||||
msg_gerr("Out of memory");
|
||||
goto error;
|
||||
}
|
||||
|
||||
file = strdup(colon + 1);
|
||||
if (!file) {
|
||||
msg_gerr("Out of memory");
|
||||
goto error;
|
||||
}
|
||||
} else {
|
||||
name = strdup(arg);
|
||||
}
|
||||
|
||||
for (tmp = *args; tmp; tmp = tmp->next) {
|
||||
if (!strcmp(tmp->name, name)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user