[netfilter-cvslog] r7077 - trunk/iptables/extensions

kaber at trash.net kaber at trash.net
Thu Oct 18 11:12:49 CEST 2007


Author: kaber at trash.net
Date: 2007-10-18 11:12:49 +0200 (Thu, 18 Oct 2007)
New Revision: 7077

Modified:
   trunk/iptables/extensions/libxt_sctp.c
Log:
[PATCH] 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 <lizf at cn.fujitsu.com>


Modified: trunk/iptables/extensions/libxt_sctp.c
===================================================================
--- trunk/iptables/extensions/libxt_sctp.c	2007-10-17 16:36:49 UTC (rev 7076)
+++ trunk/iptables/extensions/libxt_sctp.c	2007-10-18 09:12:49 UTC (rev 7077)
@@ -398,12 +398,11 @@
 }
 
 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 @@
 		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 @@
 		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 @@
 			printf("! ");
 		printf("--chunk-types ");
 
-		print_chunks(einfo->chunk_match_type, einfo->chunkmap, 
-			einfo->flag_info, einfo->flag_count, 0);
+		print_chunks(einfo, 0);
 	}
 }
 




More information about the netfilter-cvslog mailing list