summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdeel <adeelbm@outlook.com>2020-05-08 02:37:44 +0000
committerDave Watson <dade.watson@gmail.com>2020-05-18 14:57:42 -0700
commit52c6488da816857de4c782bc5217defdb4c0bea3 (patch)
tree9308c389cb8196342b2658d9275974621752e847 /src
parentcb5016341a550849c126c97b9da96e674b396f70 (diff)
downloadlibunwind-52c6488da816857de4c782bc5217defdb4c0bea3.tar.gz
Fix a memory leak issue
```sh $ cppcheck --enable=all . 2>&1 | grep -i -B5 -A5 leak ... Checking src/tilegx/Gcreate_addr_space.c ... src/tilegx/Gcreate_addr_space.c:52:5: error: Memory leak: as [memleak] return NULL; ^ ... ```
Diffstat (limited to 'src')
-rw-r--r--src/tilegx/Gcreate_addr_space.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/tilegx/Gcreate_addr_space.c b/src/tilegx/Gcreate_addr_space.c
index 39acdc2c..da66813b 100644
--- a/src/tilegx/Gcreate_addr_space.c
+++ b/src/tilegx/Gcreate_addr_space.c
@@ -33,15 +33,6 @@ unw_create_addr_space (unw_accessors_t *a, int byte_order)
#ifdef UNW_LOCAL_ONLY
return NULL;
#else
- unw_addr_space_t as = malloc (sizeof (*as));
-
- if (!as)
- return NULL;
-
- memset (as, 0, sizeof (*as));
-
- as->acc = *a;
-
/*
* Tilegx supports only big or little-endian, not weird stuff like
* PDP_ENDIAN.
@@ -51,6 +42,14 @@ unw_create_addr_space (unw_accessors_t *a, int byte_order)
&& byte_order != __BIG_ENDIAN)
return NULL;
+ unw_addr_space_t as = malloc (sizeof (*as));
+ if (!as)
+ return NULL;
+
+ memset (as, 0, sizeof (*as));
+
+ as->acc = *a;
+
if (byte_order == 0)
/* use host default: */
as->big_endian = (__BYTE_ORDER == __BIG_ENDIAN);