mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-07 22:03:50 +00:00
[Core] Coverity: 1024552 Logically dead code
This commit is contained in:
parent
79ce088101
commit
d08424384b
@ -747,7 +747,7 @@ SWITCH_DECLARE(int) switch_parse_cidr(const char *string, ip_t *ip, ip_t *mask,
|
|||||||
ip_t *maskv = mask;
|
ip_t *maskv = mask;
|
||||||
ip_t *ipv = ip;
|
ip_t *ipv = ip;
|
||||||
|
|
||||||
switch_copy_string(host, string, sizeof(host)-1);
|
switch_copy_string(host, string, sizeof(host) - 1);
|
||||||
bit_str = strchr(host, '/');
|
bit_str = strchr(host, '/');
|
||||||
|
|
||||||
if (!bit_str) {
|
if (!bit_str) {
|
||||||
@ -758,22 +758,20 @@ SWITCH_DECLARE(int) switch_parse_cidr(const char *string, ip_t *ip, ip_t *mask,
|
|||||||
bits = atoi(bit_str);
|
bits = atoi(bit_str);
|
||||||
ipv6 = strchr(string, ':');
|
ipv6 = strchr(string, ':');
|
||||||
if (ipv6) {
|
if (ipv6) {
|
||||||
int i,n;
|
int32_t i, n;
|
||||||
|
uint32_t k;
|
||||||
|
|
||||||
if (bits < 0 || bits > 128) {
|
if (bits < 0 || bits > 128) {
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
bits = atoi(bit_str);
|
bits = atoi(bit_str);
|
||||||
switch_inet_pton(AF_INET6, host, (unsigned char *)ip);
|
switch_inet_pton(AF_INET6, host, (unsigned char *)ip);
|
||||||
for (n=bits,i=0 ;i < 16; i++){
|
|
||||||
if (n >= 8) {
|
for (n = bits, i = 0; i < 16; i++) {
|
||||||
maskv->v6.s6_addr[i] = 0xFF;
|
k = (n > 8) ? 8 : n;
|
||||||
n -= 8;
|
maskv->v6.s6_addr[i] = 0xFF & ~(0xFF >> k); /* k = 0 gives 0x00, k = 8 gives 0xFF */
|
||||||
} else if (n < 8) {
|
n -= k;
|
||||||
maskv->v6.s6_addr[i] = 0xFF & ~(0xFF >> n);
|
|
||||||
n -= n;
|
|
||||||
} else if (n == 0) {
|
|
||||||
maskv->v6.s6_addr[i] = 0x00;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (bits < 0 || bits > 32) {
|
if (bits < 0 || bits > 32) {
|
||||||
@ -786,6 +784,7 @@ SWITCH_DECLARE(int) switch_parse_cidr(const char *string, ip_t *ip, ip_t *mask,
|
|||||||
|
|
||||||
maskv->v4 = 0xFFFFFFFF & ~(0xFFFFFFFF >> bits);
|
maskv->v4 = 0xFFFFFFFF & ~(0xFFFFFFFF >> bits);
|
||||||
}
|
}
|
||||||
|
|
||||||
*bitp = bits;
|
*bitp = bits;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -53,6 +53,66 @@ FST_CORE_BEGIN("./conf")
|
|||||||
}
|
}
|
||||||
FST_TEARDOWN_END()
|
FST_TEARDOWN_END()
|
||||||
|
|
||||||
|
FST_TEST_BEGIN(test_switch_parse_cidr_v6)
|
||||||
|
{
|
||||||
|
ip_t ip, mask;
|
||||||
|
uint32_t bits;
|
||||||
|
|
||||||
|
fst_check(!switch_parse_cidr("fe80::/10", &ip, &mask, &bits));
|
||||||
|
fst_check_int_equals(bits, 10);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[0], 0xfe);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[1], 0x80);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[2], 0);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[0], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[1], 0xc0);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[2], 0);
|
||||||
|
|
||||||
|
fst_check(!switch_parse_cidr("::/0", &ip, &mask, &bits));
|
||||||
|
fst_check_int_equals(bits, 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[0], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[1], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[2], 0);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[0], 0);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[1], 0);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[2], 0);
|
||||||
|
|
||||||
|
fst_check(!switch_parse_cidr("::1/128", &ip, &mask, &bits));
|
||||||
|
fst_check_int_equals(bits, 128);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[0], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[1], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[2], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[3], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[4], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[5], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[6], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[7], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[8], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[9], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[10], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[11], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[12], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[13], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[14], 0);
|
||||||
|
fst_check_int_equals(ip.v6.s6_addr[15], 1);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[0], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[1], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[2], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[3], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[4], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[5], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[6], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[7], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[8], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[9], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[10], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[11], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[12], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[13], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[14], 0xff);
|
||||||
|
fst_check_int_equals(mask.v6.s6_addr[15], 0xff);
|
||||||
|
}
|
||||||
|
FST_TEST_END()
|
||||||
|
|
||||||
#if ENABLE_SNPRINTFV_TESTS
|
#if ENABLE_SNPRINTFV_TESTS
|
||||||
FST_TEST_BEGIN(test_snprintfv_1)
|
FST_TEST_BEGIN(test_snprintfv_1)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user