Fixed sparse warnings about integer vs. pointer use

The configuration parsing functions seemed to have worked fine before,
but these were real bugs even if they did not show up in practice.
hostapd_ip_diff() was broken for IPv6 addresses (overwrote address and
always returned 1.
This commit is contained in:
Jouni Malinen 2009-01-03 20:46:32 +02:00
parent d953d9ab80
commit 5306f43fc3
2 changed files with 4 additions and 5 deletions

View File

@ -411,7 +411,7 @@ static int hostapd_config_read_wpa_psk(const char *fname,
os_memcpy(psk->addr, addr, ETH_ALEN);
pos = buf + 17;
if (pos == '\0') {
if (*pos == '\0') {
printf("No PSK on line %d in '%s'\n", line, fname);
os_free(psk);
ret = -1;
@ -800,7 +800,7 @@ static int hostapd_config_parse_key_mgmt(int line, const char *value)
return -1;
start = buf;
while (start != '\0') {
while (*start != '\0') {
while (*start == ' ' || *start == '\t')
start++;
if (*start == '\0')
@ -858,7 +858,7 @@ static int hostapd_config_parse_cipher(int line, const char *value)
return -1;
start = buf;
while (start != '\0') {
while (*start != '\0') {
while (*start == ' ' || *start == '\t')
start++;
if (*start == '\0')

View File

@ -53,8 +53,7 @@ int hostapd_ip_diff(struct hostapd_ip_addr *a, struct hostapd_ip_addr *b)
break;
#ifdef CONFIG_IPV6
case AF_INET6:
if (os_memcpy(&a->u.v6, &b->u.v6, sizeof(a->u.v6))
!= 0)
if (os_memcmp(&a->u.v6, &b->u.v6, sizeof(a->u.v6)) != 0)
return 1;
break;
#endif /* CONFIG_IPV6 */