Subject: [PATCH] [iproute2/ip] ip segfault with wrong key

From: Marcela Maslanova <[email-masked]>
Date: Fri, 04 Jul 2008 14:33:32 +0200

Wrong key in "ip xfrm state" command lead to segfault. I thought there 
could be used only hexadecimal numbers. I'm suggesting attached patch. 
The example of problem could be seen here: 
https://bugzilla.redhat.com/show_bug.cgi?id=449933

-- 
Marcela Mašláňová
BaseOS team Brno

>>From e2ea8623c5d4fb761924cb7744a0bb220b65e03e Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Marcela=20Ma=C5=A1l=C3=A1=C5=88ov=C3=A1?= <[email-masked]>
Date: Fri, 4 Jul 2008 13:38:17 +0200
Subject: [PATCH] The key should be hexadecimal number. This fix should solve
 segfault with wrong key.

---
 ip/xfrm_state.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c
index ff309e7..9a34da4 100644
--- a/ip/xfrm_state.c
+++ b/ip/xfrm_state.c
@@ -160,8 +160,9 @@ static int xfrm_algo_parse(struct xfrm_algo *alg, enum xfrm_attr_type_t type,
 		if (len > 0) {
 			if (len > max)
 				invarg("\"ALGOKEY\" makes buffer overflow\n", key);
-
-			strncpy(alg->alg_key, key, len);
+			else
+				invarg("\"ALGOKEY\" is invalid", key);
+			/* strncpy(alg->alg_key, key, len); */
 		}
 	}
 
-- 
1.5.5.1