• Tetsuo Handa's avatar
    smack: Check address length before reading address family · b9ef5513
    Tetsuo Handa authored
    KMSAN will complain if valid address length passed to bind()/connect()/
    sendmsg() is shorter than sizeof("struct sockaddr"->sa_family) bytes.
    
    Also, since smk_ipv6_port_label()/smack_netlabel_send()/
    smack_ipv6host_label()/smk_ipv6_check()/smk_ipv6_port_check() are not
    checking valid address length and/or address family, make sure we check
    both. The minimal valid length in smack_socket_connect() is changed from
    sizeof(struct sockaddr_in6) bytes to SIN6_LEN_RFC2133 bytes, for it seems
    that Smack is not using "struct sockaddr_in6"->sin6_scope_id field.
    Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
    b9ef5513
smack_lsm.c 116 KB