0085-loader-bsd-Check-for-NULL-arg-up-front.patch 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. From 5d5391b0a05abe76e04c1eb68dcc6cbef5326c4a Mon Sep 17 00:00:00 2001
  2. From: Darren Kenny <darren.kenny@oracle.com>
  3. Date: Tue, 8 Dec 2020 21:47:13 +0000
  4. Subject: [PATCH] loader/bsd: Check for NULL arg up-front
  5. The code in the next block suggests that it is possible for .set to be
  6. true but .arg may still be NULL.
  7. This code assumes that it is never NULL, yet later is testing if it is
  8. NULL - that is inconsistent.
  9. So we should check first if .arg is not NULL, and remove this check that
  10. is being flagged by Coverity since it is no longer required.
  11. Fixes: CID 292471
  12. Signed-off-by: Darren Kenny <darren.kenny@oracle.com>
  13. Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
  14. Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
  15. ---
  16. grub-core/loader/i386/bsd.c | 4 ++--
  17. 1 file changed, 2 insertions(+), 2 deletions(-)
  18. diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c
  19. index b92cbe9..8432283 100644
  20. --- a/grub-core/loader/i386/bsd.c
  21. +++ b/grub-core/loader/i386/bsd.c
  22. @@ -1605,7 +1605,7 @@ grub_cmd_openbsd (grub_extcmd_context_t ctxt, int argc, char *argv[])
  23. kernel_type = KERNEL_TYPE_OPENBSD;
  24. bootflags = grub_bsd_parse_flags (ctxt->state, openbsd_flags);
  25. - if (ctxt->state[OPENBSD_ROOT_ARG].set)
  26. + if (ctxt->state[OPENBSD_ROOT_ARG].set && ctxt->state[OPENBSD_ROOT_ARG].arg != NULL)
  27. {
  28. const char *arg = ctxt->state[OPENBSD_ROOT_ARG].arg;
  29. unsigned type, unit, part;
  30. @@ -1622,7 +1622,7 @@ grub_cmd_openbsd (grub_extcmd_context_t ctxt, int argc, char *argv[])
  31. "unknown disk type name");
  32. unit = grub_strtoul (arg, (char **) &arg, 10);
  33. - if (! (arg && *arg >= 'a' && *arg <= 'z'))
  34. + if (! (*arg >= 'a' && *arg <= 'z'))
  35. return grub_error (GRUB_ERR_BAD_ARGUMENT,
  36. "only device specifications of form "
  37. "<type><number><lowercase letter> are supported");
  38. --
  39. 2.14.2