• Kees Cook's avatar
    hv_sock: Extract hvs_send_data() helper that takes only header · c0e084e3
    Kees Cook authored
    When building under -Warray-bounds, the compiler is especially
    conservative when faced with casts from a smaller object to a larger
    object. While this has found many real bugs, there are some cases that
    are currently false positives (like here). With this as one of the last
    few instances of the warning in the kernel before -Warray-bounds can be
    enabled globally, rearrange the functions so that there is a header-only
    version of hvs_send_data(). Silences this warning:
    
    net/vmw_vsock/hyperv_transport.c: In function 'hvs_shutdown_lock_held.constprop':
    net/vmw_vsock/hyperv_transport.c:231:32: warning: array subscript 'struct hvs_send_buf[0]' is partly outside array bounds of 'struct vmpipe_proto_header[1]' [-Warray-bounds]
      231 |         send_buf->hdr.pkt_type = 1;
          |         ~~~~~~~~~~~~~~~~~~~~~~~^~~
    net/vmw_vsock/hyperv_transport.c:465:36: note: while referencing 'hdr'
      465 |         struct vmpipe_proto_header hdr;
          |                                    ^~~
    
    This change results in no executable instruction differences.
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    Acked-by: default avatarWei Liu <wei.liu@kernel.org>
    Link: https://lore.kernel.org/r/20211207063217.2591451-1-keescook@chromium.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    c0e084e3
hyperv_transport.c 23.4 KB