[nft PATCH] erec: Dump locations' expressions only if set

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Calling netlink_dump_expr() with a NULL pointer leads to segfault within
libnftnl. Internal ("fake") locations such as 'netlink_location' don't
have an expression assigned so expect this and skip the call. Simple
reproducer (list ruleset with netlink debugging as non-root):

| $ nft -d netlink list ruleset

Reported-by: François Rigault <frigo@xxxxxxxxxxx>
Signed-off-by: Phil Sutter <phil@xxxxxx>
---
 src/erec.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/erec.c b/src/erec.c
index a4b93fb0d0d61..aebb8632583a1 100644
--- a/src/erec.c
+++ b/src/erec.c
@@ -170,6 +170,8 @@ void erec_print(struct output_ctx *octx, const struct error_record *erec,
 		fprintf(f, "%s\n", erec->msg);
 		for (l = 0; l < (int)erec->num_locations; l++) {
 			loc = &erec->locations[l];
+			if (!loc->nle)
+				continue;
 			netlink_dump_expr(loc->nle, f, debug_mask);
 		}
 		return;
-- 
2.34.1




[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux