]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - net/rxrpc/af_rxrpc.c
rxrpc: Check address length before reading srx_service field
[thirdparty/kernel/stable.git] / net / rxrpc / af_rxrpc.c
index 96f2952bbdfd6e62ffcec87f0a565378abbfe4f5..c54dce3ca0dd0e2419b17699d28bd844e0f31f52 100644 (file)
@@ -135,7 +135,7 @@ static int rxrpc_bind(struct socket *sock, struct sockaddr *saddr, int len)
        struct sockaddr_rxrpc *srx = (struct sockaddr_rxrpc *)saddr;
        struct rxrpc_local *local;
        struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
-       u16 service_id = srx->srx_service;
+       u16 service_id;
        int ret;
 
        _enter("%p,%p,%d", rx, saddr, len);
@@ -143,6 +143,7 @@ static int rxrpc_bind(struct socket *sock, struct sockaddr *saddr, int len)
        ret = rxrpc_validate_address(rx, srx, len);
        if (ret < 0)
                goto error;
+       service_id = srx->srx_service;
 
        lock_sock(&rx->sk);