From: Lee <ler762@users.sourceforge.net>
Date: Wed, 9 Aug 2023 08:34:55 +0000 (-0400)
Subject: fix gcc maybe-uninitialized compiler warnings in match_sockaddr
X-Git-Tag: v_4_0_0~168
X-Git-Url: http://www.privoxy.org/gitweb/%22https:/static/user-manual/@proxy-info-url@?a=commitdiff_plain;h=b1fbecac2b4058d2a3db3c889ff75012940bef8f;p=privoxy.git

fix gcc maybe-uninitialized compiler warnings in match_sockaddr

I can't tell if they're false positives or not, but compiling with
no warnings is better than seeing this:

filters.c: In function ‘match_sockaddr’:
filters.c:205:42: warning: ‘address_port’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  205 |    if (*netmask_port && *network_port != *address_port)
      |                                          ^~~~~~~~~~~~~
filters.c:214:24: warning: ‘address_addr’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  214 |           (address_addr[i] & netmask_addr[i]))
      |            ~~~~~~~~~~~~^~~
filters.c:205:8: warning: ‘netmask_port’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  205 |    if (*netmask_port && *network_port != *address_port)
      |        ^~~~~~~~~~~~~
filters.c:200:20: warning: ‘netmask_addr’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  200 |       netmask_addr += 12;
      |                    ^~
filters.c:205:25: warning: ‘network_port’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  205 |    if (*netmask_port && *network_port != *address_port)
      |                         ^~~~~~~~~~~~~
filters.c:172:17: warning: ‘addr_len’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  172 |    unsigned int addr_len;
      |                 ^~~~~~~~
---

diff --git a/filters.c b/filters.c
index 35c8476f..86a1dfcb 100644
--- a/filters.c
+++ b/filters.c
@@ -173,6 +173,14 @@ static int match_sockaddr(const struct sockaddr_storage *network,
    in_port_t *network_port, *netmask_port, *address_port;
    int i;
 
+   network_addr = NULL;
+   netmask_addr = NULL;
+   address_addr = NULL;
+   addr_len = 0;
+   network_port = NULL;
+   netmask_port = NULL;
+   address_port = NULL;
+
    if (network->ss_family != netmask->ss_family)
    {
       /* This should never happen */