]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
parser_bison: type_identifier string memleak
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 5 Apr 2019 12:09:56 +0000 (14:09 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 5 Apr 2019 13:48:36 +0000 (15:48 +0200)
==6297== 24 bytes in 3 blocks are definitely lost in loss record 2 of 13
==6297==    at 0x4C2BBAF: malloc (vg_replace_malloc.c:299)
==6297==    by 0x56193B9: strdup (strdup.c:42)
==6297==    by 0x4E758BD: xstrdup (utils.c:75)
==6297==    by 0x4E7F9D3: nft_parse (parser_bison.y:1895)
==6297==    by 0x4E7AAE1: nft_parse_bison_filename (libnftables.c:370)
==6297==    by 0x4E7AAE1: nft_run_cmd_from_filename (libnftables.c:438)
==6297==    by 0x109A33: main (main.c:310)

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/parser_bison.y

index 50642b4e02f45a685ac32e81bdab101b7ce340ad..343df12a3281f4c5ef5d1307287771a711093eda 100644 (file)
@@ -1796,11 +1796,11 @@ data_type_atom_expr     :       type_identifier
                                if (dtype == NULL) {
                                        erec_queue(error(&@1, "unknown datatype %s", $1),
                                                   state->msgs);
-                                       xfree($1);
                                        YYERROR;
                                }
                                $$ = constant_expr_alloc(&@1, dtype, dtype->byteorder,
                                                         dtype->size, NULL);
+                               xfree($1);
                        }
                        ;