From: Simon Marchi Date: Tue, 6 Jun 2017 13:52:31 +0000 (+0100) Subject: Fix memory leaks in the sysinfo program. X-Git-Tag: users/hjl/linux/release/2.28.51.0.1~1^2~22^2~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d24b756188bd63a422671a73e31af718007264ca;p=thirdparty%2Fbinutils-gdb.git Fix memory leaks in the sysinfo program. * sysinfo.y: Free memory allocated by token NAME. --- diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 1ecb04297b9..0766e670709 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,7 @@ +2017-06-06 Simon Marchi + + * sysinfo.y: Free memory allocated by token NAME. + 2017-05-30 Anton Kolesov * doc/binutils.texi: Document new cpu=... disassembler options for ARC. diff --git a/binutils/sysinfo.y b/binutils/sysinfo.y index 62758de9371..1c8f1ff221a 100644 --- a/binutils/sysinfo.y +++ b/binutils/sysinfo.y @@ -21,6 +21,7 @@ %{ #include #include +#include static char writecode; static char *it; @@ -159,6 +160,8 @@ it: case 'c': printf("}\n"); } + + free (it); } ; @@ -204,6 +207,8 @@ repeat_it_field: '(' REPEAT NAME it_field_list ')' { + free (repeat); + repeat = oldrepeat; oldrepeat =0; rdepth--; @@ -230,6 +235,8 @@ cond_it_field: '(' COND NAME printf("\tif (%s) {\n", $3); break; } + + free ($3); } it_field_list ')' @@ -348,6 +355,9 @@ char *ptr = pnames[rdepth]; else abort(); break; } + + free (desc); + free (id); } ; @@ -371,7 +381,7 @@ attr_size: attr_id: '(' NAME ')' { $$ = $2; } - | { $$ = "dummy";} + | { $$ = strdup ("dummy");} ; enums: @@ -388,6 +398,9 @@ enum_list: case 'c': printf("if (ptr->%s%s == %s) { tabout(); printf(\"%s\\n\");}\n", name, names[rdepth],$4,$3); } + + free ($3); + free ($4); } ;