smb3: fix uninitialized value for port in witness protocol move
authorSteve French <stfrench@microsoft.com>
Sat, 19 Jun 2021 17:22:20 +0000 (12:22 -0500)
committerSteve French <stfrench@microsoft.com>
Mon, 21 Jun 2021 02:28:17 +0000 (21:28 -0500)
Although in practice this can not occur (since IPv4 and IPv6 are the
only two cases currently supported), it is cleaner to avoid uninitialized
variable warnings.

Addresses smatch warning:
  fs/cifs/cifs_swn.c:468 cifs_swn_store_swn_addr() error: uninitialized symbol 'port'.

Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
CC: Samuel Cabrero <scabrero@suse.de>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/cifs_swn.c

index d829b8b..93b4781 100644 (file)
@@ -447,15 +447,13 @@ static int cifs_swn_store_swn_addr(const struct sockaddr_storage *new,
                                   const struct sockaddr_storage *old,
                                   struct sockaddr_storage *dst)
 {
-       __be16 port;
+       __be16 port = cpu_to_be16(CIFS_PORT);
 
        if (old->ss_family == AF_INET) {
                struct sockaddr_in *ipv4 = (struct sockaddr_in *)old;
 
                port = ipv4->sin_port;
-       }
-
-       if (old->ss_family == AF_INET6) {
+       } else if (old->ss_family == AF_INET6) {
                struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)old;
 
                port = ipv6->sin6_port;
@@ -465,9 +463,7 @@ static int cifs_swn_store_swn_addr(const struct sockaddr_storage *new,
                struct sockaddr_in *ipv4 = (struct sockaddr_in *)new;
 
                ipv4->sin_port = port;
-       }
-
-       if (new->ss_family == AF_INET6) {
+       } else if (new->ss_family == AF_INET6) {
                struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)new;
 
                ipv6->sin6_port = port;