Blob Blame History Raw
diff -up iproute2-2.6.29/iproute2-2.6.29/ip/xfrm_state.c.seg iproute2-2.6.29/iproute2-2.6.29/ip/xfrm_state.c
--- iproute2-2.6.29/ip/xfrm_state.c.seg	2008-07-21 17:23:12.000000000 +0200
+++ iproute2-2.6.29/ip/xfrm_state.c	2008-07-22 09:27:12.000000000 +0200
@@ -158,12 +158,16 @@ static int xfrm_algo_parse(struct xfrm_a
 			buf[j] = val;
 		}
 	} else {
+		int i;
 		len = slen;
 		if (len > 0) {
 			if (len > max)
 				invarg("\"ALGOKEY\" makes buffer overflow\n", key);
 
-			strncpy(buf, key, len);
+			for (i = 0 ; i < len && key[i] != '\0'; i++)
+				buf[i] = key[i];
+			for ( ; i < len; i++)
+				buf[i] = '\0';
 		}
 	}