s3: libsmb: Cleanup - Remove a union in sock_packet_read_got_socket() that was an...
authorJeremy Allison <jra@samba.org>
Mon, 24 Aug 2020 19:00:29 +0000 (12:00 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 25 Aug 2020 16:21:32 +0000 (16:21 +0000)
Just use samba_sockaddr.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: David Mulder <dmulder@samba.org>
source3/libsmb/namequery.c

index a69f48d7ba0ac70418b3a23fb60ef68bbadaa5c0..89b217f1161113dcd10f0d65eb8b4a9e5d1e19c2 100644 (file)
@@ -442,10 +442,7 @@ static void sock_packet_read_got_socket(struct tevent_req *subreq)
                subreq, struct tevent_req);
        struct sock_packet_read_state *state = tevent_req_data(
                req, struct sock_packet_read_state);
-       union {
-               struct sockaddr sa;
-               struct sockaddr_in sin;
-       } addr;
+       struct samba_sockaddr addr = {0};
        ssize_t ret;
        ssize_t received;
        int err;
@@ -474,8 +471,8 @@ static void sock_packet_read_got_socket(struct tevent_req *subreq)
                goto retry;
        }
        ret = tsocket_address_bsd_sockaddr(state->addr,
-                                          &addr.sa,
-                                          sizeof(addr.sin));
+                                       &addr.u.sa,
+                                       sizeof(addr.u.in));
        if (ret == -1) {
                tevent_req_nterror(req, map_nt_error_from_unix(errno));
                return;
@@ -483,7 +480,7 @@ static void sock_packet_read_got_socket(struct tevent_req *subreq)
 
        state->packet = parse_packet_talloc(
                state, (char *)state->buf, received, state->type,
-               addr.sin.sin_addr, addr.sin.sin_port);
+               addr.u.in.sin_addr, addr.u.in.sin_port);
        if (state->packet == NULL) {
                DEBUG(10, ("parse_packet failed\n"));
                goto retry;