Skip to content
  • Peter Maydell's avatar
    nbd: Don't take address of fields in packed structs · 80c7c2b0
    Peter Maydell authored
    
    
    Taking the address of a field in a packed struct is a bad idea, because
    it might not be actually aligned enough for that pointer type (and
    thus cause a crash on dereference on some host architectures). Newer
    versions of clang warn about this. Avoid the bug by not using the
    "modify in place" byte swapping functions.
    
    This patch was produced with the following spatch script:
    @@
    expression E;
    @@
    -be16_to_cpus(&E);
    +E = be16_to_cpu(E);
    @@
    expression E;
    @@
    -be32_to_cpus(&E);
    +E = be32_to_cpu(E);
    @@
    expression E;
    @@
    -be64_to_cpus(&E);
    +E = be64_to_cpu(E);
    @@
    expression E;
    @@
    -cpu_to_be16s(&E);
    +E = cpu_to_be16(E);
    @@
    expression E;
    @@
    -cpu_to_be32s(&E);
    +E = cpu_to_be32(E);
    @@
    expression E;
    @@
    -cpu_to_be64s(&E);
    +E = cpu_to_be64(E);
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Message-Id: <20180927164200.15097-1-peter.maydell@linaro.org>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    [eblake: rebase, and squash in missed changes]
    Signed-off-by: default avatarEric Blake <eblake@redhat.com>
    80c7c2b0