45 lines
1.8 KiB
Diff
45 lines
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Darren Kenny <darren.kenny@oracle.com>
|
|
Date: Tue, 8 Dec 2020 21:47:13 +0000
|
|
Subject: [PATCH] loader/bsd: Check for NULL arg up-front
|
|
|
|
The code in the next block suggests that it is possible for .set to be
|
|
true but .arg may still be NULL.
|
|
|
|
This code assumes that it is never NULL, yet later is testing if it is
|
|
NULL - that is inconsistent.
|
|
|
|
So we should check first if .arg is not NULL, and remove this check that
|
|
is being flagged by Coverity since it is no longer required.
|
|
|
|
Fixes: CID 292471
|
|
|
|
Signed-off-by: Darren Kenny <darren.kenny@oracle.com>
|
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
|
---
|
|
grub-core/loader/i386/bsd.c | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c
|
|
index 45a71509956..b5ab848ee44 100644
|
|
--- a/grub-core/loader/i386/bsd.c
|
|
+++ b/grub-core/loader/i386/bsd.c
|
|
@@ -1606,7 +1606,7 @@ grub_cmd_openbsd (grub_extcmd_context_t ctxt, int argc, char *argv[])
|
|
kernel_type = KERNEL_TYPE_OPENBSD;
|
|
bootflags = grub_bsd_parse_flags (ctxt->state, openbsd_flags);
|
|
|
|
- if (ctxt->state[OPENBSD_ROOT_ARG].set)
|
|
+ if (ctxt->state[OPENBSD_ROOT_ARG].set && ctxt->state[OPENBSD_ROOT_ARG].arg != NULL)
|
|
{
|
|
const char *arg = ctxt->state[OPENBSD_ROOT_ARG].arg;
|
|
unsigned type, unit, part;
|
|
@@ -1623,7 +1623,7 @@ grub_cmd_openbsd (grub_extcmd_context_t ctxt, int argc, char *argv[])
|
|
"unknown disk type name");
|
|
|
|
unit = grub_strtoul (arg, (char **) &arg, 10);
|
|
- if (! (arg && *arg >= 'a' && *arg <= 'z'))
|
|
+ if (! (*arg >= 'a' && *arg <= 'z'))
|
|
return grub_error (GRUB_ERR_BAD_ARGUMENT,
|
|
"only device specifications of form "
|
|
"<type><number><lowercase letter> are supported");
|