From 1f25b402553db8dd4448ee502d7ebcf47c9151c9 Mon Sep 17 00:00:00 2001 From: Li Zefan Date: Thu, 18 Oct 2007 09:12:49 +0000 Subject: extension/sctp: fix - mistake to pass a pointer where array is required Macros like SCTP_CHUNKMAP_XXX(chukmap) require chukmap to be an array, but print_chunks() passes a pointer to these macros. Li Zefan --- extensions/libxt_sctp.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'extensions/libxt_sctp.c') diff --git a/extensions/libxt_sctp.c b/extensions/libxt_sctp.c index 68189747..de8948c5 100644 --- a/extensions/libxt_sctp.c +++ b/extensions/libxt_sctp.c @@ -398,12 +398,11 @@ print_chunk(u_int32_t chunknum, int numeric) } static void -print_chunks(u_int32_t chunk_match_type, - const u_int32_t *chunkmap, - const struct xt_sctp_flag_info *flag_info, - int flag_count, - int numeric) +print_chunks(const struct xt_sctp_info *einfo, int numeric) { + u_int32_t chunk_match_type = einfo->chunk_match_type; + const struct xt_sctp_flag_info *flag_info = einfo->flag_info; + int flag_count = einfo->flag_count; int i, j; int flag; @@ -414,19 +413,19 @@ print_chunks(u_int32_t chunk_match_type, default: printf("Never reach herer\n"); break; } - if (SCTP_CHUNKMAP_IS_CLEAR(chunkmap)) { + if (SCTP_CHUNKMAP_IS_CLEAR(einfo->chunkmap)) { printf("NONE "); goto out; } - if (SCTP_CHUNKMAP_IS_ALL_SET(chunkmap)) { + if (SCTP_CHUNKMAP_IS_ALL_SET(einfo->chunkmap)) { printf("ALL "); goto out; } flag = 0; for (i = 0; i < 256; i++) { - if (SCTP_CHUNKMAP_IS_SET(chunkmap, i)) { + if (SCTP_CHUNKMAP_IS_SET(einfo->chunkmap, i)) { if (flag) printf(","); flag = 1; @@ -473,8 +472,7 @@ sctp_print(const void *ip, const struct xt_entry_match *match, int numeric) if (einfo->invflags & XT_SCTP_CHUNK_TYPES) { printf("! "); } - print_chunks(einfo->chunk_match_type, einfo->chunkmap, - einfo->flag_info, einfo->flag_count, numeric); + print_chunks(einfo, numeric); } } @@ -509,8 +507,7 @@ static void sctp_save(const void *ip, const struct xt_entry_match *match) printf("! "); printf("--chunk-types "); - print_chunks(einfo->chunk_match_type, einfo->chunkmap, - einfo->flag_info, einfo->flag_count, 0); + print_chunks(einfo, 0); } } -- cgit v1.2.3