ip/xfrm: Fix potential SIGSEGV when printing extra flags
Subsystems (2)
PATCH 1/1 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 <[email protected]>
--- ip/ipxfrm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
ip/ipxfrm.c +1 -1
@@ -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 " );