summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-10-22 14:24:55 -0700
committerKeith Packard <keithp@keithp.com>2014-10-28 11:25:56 -0700
commit2566835b4374edb3e5a8353d4f7c9e7ec4851c57 (patch)
treef677adc4dbf81dd3a23d8a01120a30882efe6dbc
parent1b94fd77792310c80b0a2bcf4bf6d4e4c4c23bca (diff)
os: Eliminate uninitialized value warnings from access.c
The ConvertAddr function doesn't reliably set the 'addr' return value, and so callers are getting flagged for using potentially uninitialized values. Initialize the value in the callers to NULL and then go ahead and check for NULL values before using them. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--os/access.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/os/access.c b/os/access.c
index 125f35f5f..fe014202c 100644
--- a/os/access.c
+++ b/os/access.c
@@ -835,7 +835,7 @@ ResetHosts(const char *display)
} saddr;
#endif
int family = 0;
- void *addr;
+ void *addr = NULL;
int len;
siTypesInitialize();
@@ -928,8 +928,8 @@ ResetHosts(const char *display)
len = a->ai_addrlen;
f = ConvertAddr(a->ai_addr, &len,
(void **) &addr);
- if ((family == f) ||
- ((family == FamilyWild) && (f != -1))) {
+ if (addr && ((family == f) ||
+ ((family == FamilyWild) && (f != -1)))) {
NewHost(f, addr, len, FALSE);
}
}
@@ -1359,7 +1359,7 @@ int
InvalidHost(register struct sockaddr *saddr, int len, ClientPtr client)
{
int family;
- void *addr;
+ void *addr = NULL;
register HOST *selfhost, *host;
if (!AccessEnabled) /* just let them in */
@@ -1386,12 +1386,12 @@ InvalidHost(register struct sockaddr *saddr, int len, ClientPtr client)
}
for (host = validhosts; host; host = host->next) {
if (host->family == FamilyServerInterpreted) {
- if (siAddrMatch(family, addr, len, host, client)) {
+ if (addr && siAddrMatch(family, addr, len, host, client)) {
return 0;
}
}
else {
- if (addrEqual(family, addr, len, host))
+ if (addr && addrEqual(family, addr, len, host))
return 0;
}
@@ -1648,7 +1648,7 @@ siHostnameAddrMatch(int family, void *addr, int len,
struct addrinfo *addresses;
struct addrinfo *a;
int f, hostaddrlen;
- void *hostaddr;
+ void *hostaddr = NULL;
if (siAddrLen >= sizeof(hostname))
return FALSE;
@@ -1659,7 +1659,7 @@ siHostnameAddrMatch(int family, void *addr, int len,
for (a = addresses; a != NULL; a = a->ai_next) {
hostaddrlen = a->ai_addrlen;
f = ConvertAddr(a->ai_addr, &hostaddrlen, &hostaddr);
- if ((f == family) && (len == hostaddrlen) &&
+ if ((f == family) && (len == hostaddrlen) && hostaddr &&
(memcmp(addr, hostaddr, len) == 0)) {
res = TRUE;
break;