From 631d2548fa350baef738b15e2db9bf180ae22e41 Mon Sep 17 00:00:00 2001 From: Martin Galvan Date: Wed, 2 Sep 2015 16:54:23 -0500 Subject: tools/cpu/nios2/ptf.c: Fix leak of memory pointed to by new_prefix Updates #2405. --- tools/cpu/nios2/ptf.c | 24 ++++++++++++++---------- 1 file 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; }; -- cgit v1.2.3