diff options
author | Martin Galvan <martin.galvan@tallertechnologies.com> | 2015-09-02 16:54:23 -0500 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2015-09-03 12:34:01 -0500 |
commit | 631d2548fa350baef738b15e2db9bf180ae22e41 (patch) | |
tree | 83eca8884946704eef6953e75a150c938be8993b /tools/cpu/nios2/ptf.c | |
parent | cpukit/libnetworking/rtems/rtems_dhcp.c: Fix leak on realloc failure for dhcp... (diff) | |
download | rtems-631d2548fa350baef738b15e2db9bf180ae22e41.tar.bz2 |
tools/cpu/nios2/ptf.c: Fix leak of memory pointed to by new_prefix
Updates #2405.
Diffstat (limited to '')
-rw-r--r-- | tools/cpu/nios2/ptf.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/tools/cpu/nios2/ptf.c b/tools/cpu/nios2/ptf.c index 7a31c11632..07d6183a44 100644 --- a/tools/cpu/nios2/ptf.c +++ b/tools/cpu/nios2/ptf.c @@ -567,17 +567,21 @@ void ptf_printf(FILE *s, struct ptf *tree, char *prefix) new_prefix_len += strlen(leaf->value) + 1; }; new_prefix = (char *)malloc(new_prefix_len); - strcpy(new_prefix, prefix); - strcat(new_prefix, leaf->name); - if(leaf->value != NULL && leaf->value[0] != 0) + if (new_prefix != NULL) { - strcat(new_prefix, ":"); - strcat(new_prefix, leaf->value); - }; - strcat(new_prefix, "/"); - fputs(new_prefix, s); - fputs("\n", s); - ptf_printf(s, leaf->sub, new_prefix); + strcpy(new_prefix, prefix); + strcat(new_prefix, leaf->name); + if(leaf->value != NULL && leaf->value[0] != 0) + { + strcat(new_prefix, ":"); + strcat(new_prefix, leaf->value); + }; + strcat(new_prefix, "/"); + fputs(new_prefix, s); + fputs("\n", s); + ptf_printf(s, leaf->sub, new_prefix); + free(new_prefix); + } break; }; |