summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThejaswani Putta <thejaswani.putta@intel.com>2019-04-11 18:36:08 -0700
committerPatrick Georgi <pgeorgi@google.com>2019-04-23 09:56:37 +0000
commit6f5225c7e0ad7a373af1decc212cde5c33b00730 (patch)
tree794593f84299c9258953eb34fdd39ecee39a1f20
parent21f9b3ecd7babefa51f497bd61495316ebf41851 (diff)
Klocwork: Fix the Null pointer derefernce found by klocwork
Signed-off-by: Thejaswani Putta <thejaswani.putta@intel.com> Change-Id: I15973ac28e9645826986cf63d2160eedb83024e4 Reviewed-on: https://review.coreboot.org/c/coreboot/+/32290 Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Lijian Zhao <lijian.zhao@intel.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/lib/string.c9
-rw-r--r--src/soc/intel/broadwell/ramstage.c3
-rw-r--r--util/cbfstool/cbfs_sections.c5
3 files changed, 14 insertions, 3 deletions
diff --git a/src/lib/string.c b/src/lib/string.c
index df2fd80849..2e71489ff6 100644
--- a/src/lib/string.c
+++ b/src/lib/string.c
@@ -6,7 +6,8 @@ char *strdup(const char *s)
{
size_t sz = strlen(s) + 1;
char *d = malloc(sz);
- memcpy(d, s, sz);
+ if (d)
+ memcpy(d, s, sz);
return d;
}
@@ -15,7 +16,9 @@ char *strconcat(const char *s1, const char *s2)
size_t sz_1 = strlen(s1);
size_t sz_2 = strlen(s2);
char *d = malloc(sz_1 + sz_2 + 1);
- memcpy(d, s1, sz_1);
- memcpy(d + sz_1, s2, sz_2 + 1);
+ if (d) {
+ memcpy(d, s1, sz_1);
+ memcpy(d + sz_1, s2, sz_2 + 1);
+ }
return d;
}
diff --git a/src/soc/intel/broadwell/ramstage.c b/src/soc/intel/broadwell/ramstage.c
index e1883f2ecd..706536940d 100644
--- a/src/soc/intel/broadwell/ramstage.c
+++ b/src/soc/intel/broadwell/ramstage.c
@@ -23,6 +23,7 @@
#include <soc/ramstage.h>
#include <soc/intel/broadwell/chip.h>
#include <soc/intel/common/acpi.h>
+#include <assert.h>
/* Save wake source information for calculating ACPI _SWS values */
int soc_fill_acpi_wake(uint32_t *pm1, uint32_t **gpe0)
@@ -31,6 +32,8 @@ int soc_fill_acpi_wake(uint32_t *pm1, uint32_t **gpe0)
static uint32_t gpe0_sts[GPE0_REG_MAX];
int i;
+ assert(ps != NULL);
+
*pm1 = ps->pm1_sts & ps->pm1_en;
/* Mask off GPE0 status bits that are not enabled */
diff --git a/util/cbfstool/cbfs_sections.c b/util/cbfstool/cbfs_sections.c
index 285725760b..088534adc9 100644
--- a/util/cbfstool/cbfs_sections.c
+++ b/util/cbfstool/cbfs_sections.c
@@ -14,6 +14,7 @@
*/
#include "cbfs_sections.h"
+#include "common.h"
#include <assert.h>
#include <stdlib.h>
@@ -65,6 +66,10 @@ bool fmd_process_flag_cbfs(const struct flashmap_descriptor *node)
return false;
list_node = (struct descriptor_node *)malloc(sizeof(*list_node));
+ if (!list_node) {
+ ERROR("Cannot allocate CBFS flag node!\n");
+ return false;
+ }
list_node->val = node;
list_node->next = NULL;