[rtems commit] bsps/shared/ofw: Fix coverity reported defects

Christian Mauderer christianm at rtems.org
Mon Feb 8 20:25:38 UTC 2021


Module:    rtems
Branch:    master
Commit:    c4985b7718a9bba270aa8a9d39276d54d9a39101
Changeset: http://git.rtems.org/rtems/commit/?id=c4985b7718a9bba270aa8a9d39276d54d9a39101

Author:    G S Niteesh Babu <niteesh.gs at gmail.com>
Date:      Sat Feb  6 23:28:09 2021 +0530

bsps/shared/ofw: Fix coverity reported defects

Fixed use after free and null pointer dereference defects

FIXES:
1) CID 1472601 (NULL_RETURNS)
2) CID 1472600 (USE_AFTER_FREE)
3) CID 1472599 (USE_AFTER_FREE)
4) CID 1472598 (USE_AFTER_FREE)
5) CID 1472596 (USE_AFTER_FREE)

The below two defects have to marked false positive
1) CID 1472597 (ARRAY_VS_SINGLETON)
2) CID 1472595 (ARRAY_VS_SINGLETON)

---

 bsps/shared/ofw/ofw.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/bsps/shared/ofw/ofw.c b/bsps/shared/ofw/ofw.c
index 82924b2..fa94bfb 100644
--- a/bsps/shared/ofw/ofw.c
+++ b/bsps/shared/ofw/ofw.c
@@ -313,7 +313,7 @@ ssize_t rtems_ofw_get_prop_alloc(
     }
 
     if (rtems_ofw_get_prop(node, propname, *buf, len) == -1) {
-      rtems_ofw_free(buf);
+      rtems_ofw_free(*buf);
       *buf = NULL;
       return -1;
     }
@@ -344,7 +344,7 @@ ssize_t rtems_ofw_get_prop_alloc_multi(
     }
 
     if (rtems_ofw_get_prop(node, propname, *buf, len) == -1) {
-      rtems_ofw_free(buf);
+      rtems_ofw_free(*buf);
       *buf = NULL;
       return -1;
     }
@@ -373,7 +373,7 @@ ssize_t rtems_ofw_get_enc_prop_alloc(
     }
 
     if (rtems_ofw_get_enc_prop(node, propname, *buf, len) == -1) {
-      rtems_ofw_free(buf);
+      rtems_ofw_free(*buf);
       *buf = NULL;
       return -1;
     }
@@ -404,7 +404,7 @@ ssize_t rtems_ofw_get_enc_prop_alloc_multi(
     }
 
     if (rtems_ofw_get_enc_prop(node, propname, *buf, len) == -1) {
-      rtems_ofw_free(buf);
+      rtems_ofw_free(*buf);
       *buf = NULL;
       return -1;
     }
@@ -614,7 +614,7 @@ int rtems_ofw_get_reg(
     offset = rtems_fdt_phandle_to_offset(parent);
     ptr = fdt_getprop(fdtp, offset, "ranges", &len);
 
-    if (len < 0) {
+    if (ptr == NULL) {
       break;
     }
 



More information about the vc mailing list