diff options
author | Li Zefan <lizf@cn.fujitsu.com> | 2007-10-18 08:12:21 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-10-18 08:12:21 -0400 |
commit | 009e8c965fd72a78636b9a96c7015109c5c70176 (patch) | |
tree | 9ebf33292c45a3b33985400e0fec13d6de4a9217 /include/linux | |
parent | 1b83336bb9fa4f110b5b0a4378a82cd5f0fd0ac8 (diff) |
[NETFILTER]: xt_sctp: fix mistake to pass a pointer where array is required
Macros like SCTP_CHUNKMAP_XXX(chukmap) require chukmap to be an array,
but match_packet() passes a pointer to these macros. Also remove the
ELEMCOUNT macro and fix a bug in SCTP_CHUNKMAP_COPY.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/netfilter/xt_sctp.h | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/include/linux/netfilter/xt_sctp.h b/include/linux/netfilter/xt_sctp.h index b157897e7792..dd5a4fd4cfd3 100644 --- a/include/linux/netfilter/xt_sctp.h +++ b/include/linux/netfilter/xt_sctp.h | |||
@@ -7,9 +7,6 @@ | |||
7 | 7 | ||
8 | #define XT_SCTP_VALID_FLAGS 0x07 | 8 | #define XT_SCTP_VALID_FLAGS 0x07 |
9 | 9 | ||
10 | #define ELEMCOUNT(x) (sizeof(x)/sizeof(x[0])) | ||
11 | |||
12 | |||
13 | struct xt_sctp_flag_info { | 10 | struct xt_sctp_flag_info { |
14 | u_int8_t chunktype; | 11 | u_int8_t chunktype; |
15 | u_int8_t flag; | 12 | u_int8_t flag; |
@@ -59,21 +56,21 @@ struct xt_sctp_info { | |||
59 | #define SCTP_CHUNKMAP_RESET(chunkmap) \ | 56 | #define SCTP_CHUNKMAP_RESET(chunkmap) \ |
60 | do { \ | 57 | do { \ |
61 | int i; \ | 58 | int i; \ |
62 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ | 59 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) \ |
63 | chunkmap[i] = 0; \ | 60 | chunkmap[i] = 0; \ |
64 | } while (0) | 61 | } while (0) |
65 | 62 | ||
66 | #define SCTP_CHUNKMAP_SET_ALL(chunkmap) \ | 63 | #define SCTP_CHUNKMAP_SET_ALL(chunkmap) \ |
67 | do { \ | 64 | do { \ |
68 | int i; \ | 65 | int i; \ |
69 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ | 66 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) \ |
70 | chunkmap[i] = ~0; \ | 67 | chunkmap[i] = ~0; \ |
71 | } while (0) | 68 | } while (0) |
72 | 69 | ||
73 | #define SCTP_CHUNKMAP_COPY(destmap, srcmap) \ | 70 | #define SCTP_CHUNKMAP_COPY(destmap, srcmap) \ |
74 | do { \ | 71 | do { \ |
75 | int i; \ | 72 | int i; \ |
76 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ | 73 | for (i = 0; i < ARRAY_SIZE(srcmap); i++) \ |
77 | destmap[i] = srcmap[i]; \ | 74 | destmap[i] = srcmap[i]; \ |
78 | } while (0) | 75 | } while (0) |
79 | 76 | ||
@@ -81,7 +78,7 @@ struct xt_sctp_info { | |||
81 | ({ \ | 78 | ({ \ |
82 | int i; \ | 79 | int i; \ |
83 | int flag = 1; \ | 80 | int flag = 1; \ |
84 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) { \ | 81 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) { \ |
85 | if (chunkmap[i]) { \ | 82 | if (chunkmap[i]) { \ |
86 | flag = 0; \ | 83 | flag = 0; \ |
87 | break; \ | 84 | break; \ |
@@ -94,7 +91,7 @@ struct xt_sctp_info { | |||
94 | ({ \ | 91 | ({ \ |
95 | int i; \ | 92 | int i; \ |
96 | int flag = 1; \ | 93 | int flag = 1; \ |
97 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) { \ | 94 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) { \ |
98 | if (chunkmap[i] != ~0) { \ | 95 | if (chunkmap[i] != ~0) { \ |
99 | flag = 0; \ | 96 | flag = 0; \ |
100 | break; \ | 97 | break; \ |