extension/sctp: fix - mistake to pass a pointer where array is required
PATCH 1/1 extension/sctp: fix - mistake to pass a pointer where array is required
I resend this patch as attachment. Hope it can work.
extensions/libxt_sctp.c +0 -0
@@ -398,15 +398,15 @@ print_chunk(u_int32_t chunknum, int nume
}
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)
{
int i, j;
int flag;+ 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;
+
switch (chunk_match_type) {
case SCTP_CHUNK_MATCH_ANY: printf("any "); break;
case SCTP_CHUNK_MATCH_ALL: printf("all "); break;
@@ -414,19 +414,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 +473,7 @@ sctp_print(const void *ip, const struct
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 +508,7 @@ static void sctp_save(const void *ip, co
printf("! ");
printf("--chunk-types ");- print_chunks(einfo->chunk_match_type, einfo->chunkmap,
- einfo->flag_info, einfo->flag_count, 0);
+ print_chunks(einfo, 0); } }
extensions/libxt_sctp.c +10 -12
@@ -398,15 +398,15 @@ print_chunk(u_int32_t chunknum, int nume }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) {int i, j;int flag; +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; +switch (chunk_match_type) {case SCTP_CHUNK_MATCH_ANY :printf ("any " );break ;case SCTP_CHUNK_MATCH_ALL :printf ("all " );break ;
@@ -414,19 +414,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 +473,7 @@ sctp_print(const void *ip, const structif (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 +508,7 @@ static void sctp_save(const void *ip, coprintf ("! " );printf ("--chunk-types " ); -print_chunks (einfo->chunk_match_type, einfo->chunkmap, - einfo->flag_info, einfo->flag_count,0 ); +print_chunks (einfo,0 ); } }
Patrick McHardy
AppliedQuoted 1 line · lizf
I resend this patch as attachment. Hope it can work.
Applied, thanks Li.