From: Thomas Egerer Date: Thu, 29 Aug 2013 12:00:36 +0000 (+0200) Subject: ip/xfrm: Fix potential SIGSEGV when printing extra flags X-Git-Tag: v3.11.0~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1ed509bb522225050edfa1ed7ddc7255e9a18bd5;p=thirdparty%2Fiproute2.git ip/xfrm: Fix potential SIGSEGV when printing extra flags The git-commit dc8867d0, that added support for displaying the extra-flags of a state, introduced a potential segfault. Trying to show a state without the extra-flag attribute and show_stats enabled, would cause the NULL pointer in tb[XFRMA_SA_EXTRA_FLAGS] to be dereferenced. Signed-off-by: Thomas Egerer --- diff --git a/ip/ipxfrm.c b/ip/ipxfrm.c index 0a3a9fb61..411d9d536 100644 --- a/ip/ipxfrm.c +++ b/ip/ipxfrm.c @@ -856,7 +856,7 @@ void xfrm_state_info_print(struct xfrm_usersa_info *xsinfo, if (flags) fprintf(fp, "%x", flags); } - if (show_stats > 0 || tb[XFRMA_SA_EXTRA_FLAGS]) { + if (show_stats > 0 && tb[XFRMA_SA_EXTRA_FLAGS]) { __u32 extra_flags = *(__u32 *)RTA_DATA(tb[XFRMA_SA_EXTRA_FLAGS]); fprintf(fp, "extra_flag ");