diff options
author | Phil Sutter <phil@nwl.cc> | 2024-07-23 21:31:34 +0200 |
---|---|---|
committer | Phil Sutter <phil@nwl.cc> | 2024-07-27 19:32:57 +0200 |
commit | db7fc1862b8bd5e2eea83ed4089fcf35fc01c032 (patch) | |
tree | 2946587ebb2e0739e5c5e0fcea97633a1763b0a7 | |
parent | bb2ee075d8a626f2249ef9507927fae155b24093 (diff) |
nft: cmd: Init struct nft_cmd::head early
Calling nft_cmd_free() in error case segfaults otherwise if the to be
freed object is not part of a list yet.
Exposed by commit eab75ed36a4f2 ("nft: Avoid memleak in error path of
nft_cmd_new()"), but belongs to commit a7f1e208cdf9c (and may go well
along with it).
Fixes: a7f1e208cdf9c ("nft: split parsing from netlink commands")
Signed-off-by: Phil Sutter <phil@nwl.cc>
-rw-r--r-- | iptables/nft-cmd.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/iptables/nft-cmd.c b/iptables/nft-cmd.c index b38da9bd..58d5aa11 100644 --- a/iptables/nft-cmd.c +++ b/iptables/nft-cmd.c @@ -28,6 +28,7 @@ struct nft_cmd *nft_cmd_new(struct nft_handle *h, int command, struct nft_cmd *cmd; cmd = xtables_calloc(1, sizeof(struct nft_cmd)); + INIT_LIST_HEAD(&cmd->head); cmd->error.lineno = h->error.lineno; cmd->command = command; cmd->table = xtables_strdup(table); |