libceph: fix sa_family just after reading address
authorJeff Layton <jlayton@kernel.org>
Tue, 4 Jun 2019 17:13:48 +0000 (13:13 -0400)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 8 Jul 2019 12:01:43 +0000 (14:01 +0200)
It doesn't make sense to leave it undecoded until later.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: "Yan, Zheng" <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
net/ceph/messenger.c

index cd0b094..8d0c51d 100644 (file)
@@ -1732,12 +1732,14 @@ static int read_partial_banner(struct ceph_connection *con)
        ret = read_partial(con, end, size, &con->actual_peer_addr);
        if (ret <= 0)
                goto out;
+       ceph_decode_addr(&con->actual_peer_addr);
 
        size = sizeof (con->peer_addr_for_me);
        end += size;
        ret = read_partial(con, end, size, &con->peer_addr_for_me);
        if (ret <= 0)
                goto out;
+       ceph_decode_addr(&con->peer_addr_for_me);
 
 out:
        return ret;
@@ -2010,9 +2012,6 @@ static int process_banner(struct ceph_connection *con)
        if (verify_hello(con) < 0)
                return -1;
 
-       ceph_decode_addr(&con->actual_peer_addr);
-       ceph_decode_addr(&con->peer_addr_for_me);
-
        /*
         * Make sure the other end is who we wanted.  note that the other
         * end may not yet know their ip address, so if it's 0.0.0.0, give