Thread (6 messages) 6 messages, 3 authors, 2012-10-17

Re: [PATCH] xfrm: use ISO C standard for array in linux/xfrm.h

flat view

From: Nicolas Dichtel <hidden>
Date: 2012-10-17 07:51:02

Le 17/10/2012 07:43, Steffen Klassert a écrit :
On Tue, Oct 16, 2012 at 05:42:33PM +0200, nicolas.dichtel@6wind.com wrote:
quoted
From: Nicolas Dichtel <redacted>

Use the ISO C standard compliant form instead of the gcc extension.

Signed-off-by: Nicolas Dichtel <redacted>
---
  include/uapi/linux/xfrm.h | 10 +++++-----
  1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/include/uapi/linux/xfrm.h b/include/uapi/linux/xfrm.h
index 28e493b..6a6a605 100644
--- a/include/uapi/linux/xfrm.h
+++ b/include/uapi/linux/xfrm.h
@@ -30,7 +30,7 @@ struct xfrm_sec_ctx {
  	__u8	ctx_alg;
  	__u16	ctx_len;
  	__u32	ctx_sid;
-	char	ctx_str[0];
+	char	ctx_str[];
Hm, what's the benefit of such a change? The kernel source is full
of these foo[0] type arrays. I don't see a reason to change this
just for xfrm.
We got a problem with "ip xfrm state add" when compiled with gcc 4.4.6.
Error was "*** buffer overflow detected ***: ip terminated", because when we try to copy the key in struct xfrm_algo, the function strncpy() calls some builtin checks about the size of the destination buffer, which is 0. With the standard notation, there is no problem.

With gcc 4.7.0, there is no problem, I don't know exactly which version of gcc triggers the problem.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help