From 5306f43fc3967da86728d28a6bc53f1b74dc3ae6 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 3 Jan 2009 20:46:32 +0200 Subject: [PATCH] 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. --- hostapd/config.c | 6 +++--- src/utils/ip_addr.c | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/hostapd/config.c b/hostapd/config.c index 650ddb92d..f333d1d22 100644 --- a/hostapd/config.c +++ b/hostapd/config.c @@ -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') diff --git a/src/utils/ip_addr.c b/src/utils/ip_addr.c index d40a8712e..158fd57ed 100644 --- a/src/utils/ip_addr.c +++ b/src/utils/ip_addr.c @@ -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 */