1
1
mirror of https://github.com/jrbrtsn/ban2fail synced 2024-06-16 11:58:01 +00:00

Fixed ipv6 problem in iptables.c

This commit is contained in:
john 2021-02-26 10:55:56 -05:00
parent af57115d23
commit 41f9de69f1
2 changed files with 16 additions and 9 deletions

@ -92,7 +92,7 @@ struct Global G= {
.version= { .version= {
.major= 0, .major= 0,
.minor= 14, .minor= 14,
.patch= 4 .patch= 5
}, },
.bitTuples.flags= GlobalFlagBitTuples .bitTuples.flags= GlobalFlagBitTuples

@ -320,14 +320,12 @@ _control_addresses(const char *cmdFlag, PTRVEC *h_vec)
{ // ipv6 addresses { // ipv6 addresses
argv[0]= IP6TABLES; argv[0]= IP6TABLES;
// Load up ipv6 addresses in string buffer // Prepare to load up ipv6 addresses in string buffer
STR_reset(&addr_sb); STR_reset(&addr_sb);
unsigned naddr= 0; unsigned naddr= 0;
do { /* Work through ipv6 addresses in the vector */ for(;;) { /* Work through ipv6 addresses in the vector */
addr= PTRVEC_remHead(h_vec);
if(addr) { if(addr) {
/* Need comma after 1st address */ /* Need comma after 1st address */
@ -336,10 +334,16 @@ _control_addresses(const char *cmdFlag, PTRVEC *h_vec)
/* Put address in place */ /* Put address in place */
STR_append(&addr_sb, addr, -1); STR_append(&addr_sb, addr, -1);
/* Note that we will use this address */
++naddr;
} }
/* See if there is another address */
addr= PTRVEC_remHead(h_vec);
/* Keep adding addresses until we bump up against iptables maximum, /* Keep adding addresses until we bump up against iptables maximum,
* or run out of ipv4 addresses * or run out of addresses
*/ */
if(!naddr || (naddr < IPTABLES_MAX_ADDR && addr)) if(!naddr || (naddr < IPTABLES_MAX_ADDR && addr))
continue; continue;
@ -351,11 +355,14 @@ _control_addresses(const char *cmdFlag, PTRVEC *h_vec)
goto abort; goto abort;
} }
/* Bail out now if we are done with the list */
if(!addr)
break;
/* Reset for next command */ /* Reset for next command */
naddr= 0; naddr= 0;
STR_reset(&addr_sb); STR_reset(&addr_sb);
}
} while(addr);
} }
rtn= 0; rtn= 0;