diff options
author | Adeel <adeelbm@outlook.com> | 2020-05-08 02:37:44 +0000 |
---|---|---|
committer | Dave Watson <dade.watson@gmail.com> | 2020-05-18 14:57:42 -0700 |
commit | 52c6488da816857de4c782bc5217defdb4c0bea3 (patch) | |
tree | 9308c389cb8196342b2658d9275974621752e847 /src/tilegx | |
parent | cb5016341a550849c126c97b9da96e674b396f70 (diff) | |
download | libunwind-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/tilegx')
-rw-r--r-- | src/tilegx/Gcreate_addr_space.c | 17 |
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); |