]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
parser: fix memory leak in set creation
authorEric Leblond <eric@regit.org>
Mon, 10 Jul 2017 22:32:50 +0000 (00:32 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 17 Jul 2017 15:20:33 +0000 (17:20 +0200)
sudo  ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-3.9/bin/llvm-symbolizer  nft add set inet filter blacklisddddddddddddddddddddt {type inet_service \;}

=================================================================
==25152==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 13 byte(s) in 1 object(s) allocated from:
    #0 0x45cca0 in __interceptor_strdup (/usr/local/sbin/nft+0x45cca0)
    #1 0x593cb1 in xstrdup /home/eric/git/netfilter/nftables/src/utils.c:75:8
    #2 0x5bccb2 in nft_lex /home/eric/git/netfilter/nftables/src/scanner.l:566:22
    #3 0x5cb363 in nft_parse /home/eric/git/netfilter/nftables/src/parser_bison.c:4366:16
    #4 0x505a37 in nft_run /home/eric/git/netfilter/nftables/src/main.c:246:8
    #5 0x50771f in main /home/eric/git/netfilter/nftables/src/main.c:392:6
    #6 0x7ff7befdb2b0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202b0)

SUMMARY: AddressSanitizer: 13 byte(s) leaked in 1 allocation(s).
Signed-off-by: Eric Leblond <eric@regit.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/parser_bison.y

index 87d898b88e4a8ae9f793ea6c50cc0c3f1960a871..45f134a81a89b7e22816aaa998ce26f5b88d5ba3 100644 (file)
@@ -1456,8 +1456,10 @@ type_identifier_list     :       type_identifier
                                if (dtype == NULL) {
                                        erec_queue(error(&@1, "unknown datatype %s", $1),
                                                   state->msgs);
+                                       xfree($1);
                                        YYERROR;
                                }
+                               xfree($1);
                                $$ = dtype->type;
                        }
                        |       type_identifier_list    DOT     type_identifier