On 5/18/22 12:31, Ilya Maximets wrote:
> On 4/11/22 13:37, Dumitru Ceara wrote:
>> As privately reported by Aaron Conole, and by Jeffrey Walton [0]
>> there's currently a number of undefined behavior instances in
>> the OVS code base.  Running the OVS (and OVN) tests with UBSan [1]
>> enabled uncovers these.
>>
>> This series fixes the issues reported by UBSan and, through the last
>> patch, enables UBSan tests in GitHub Actions CI.
>>
>> [0] https://mail.openvswitch.org/pipermail/ovs-dev/2022-January/390894.html
>> [1] https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
>> [2] 
>> https://patchwork.ozlabs.org/project/openvswitch/list/?series=286494&state=*
>>
>> Changes in v6:
>> - Rebased.
>> - Added acks from Aaron and/or Adrian to patches 3, 4, 5.
>> - Added a new patch, 6/7, addressing another UB instance spotted when
>>   running system tests.
>> - Addresses Aaron's comments on patch 2.
>>
>> Changes in v5:
>> - Rebased, dropped patch 'util: Avoid UB when iterating collections.',
>>   the proper fix from Adrian was accepted.
>> - Addressed Adrian's comments.
>>
>> Changes in v4:
>> - Rebased, dropping patches that were already applied.
>> - Addressed Ilya's comments.
>> - Added acks from Paolo from v3 as nothing major changed in this revision.
>> - Rephrased the commit message for "util: Avoid UB when iterating 
>> collections."
>>
>> Changes in v3:
>> - Added acks to the patches acked by Aaron.
>> - Addressed Aaron's comments.
>> - Split previous patch 07/11 "ofp-actions: ofp-errors: Use aligned
>>   structures when decoding ofp actions." into three separate patches
>>   addressing independent issues.
>> - Reordered patches such that the ones that might need follow up are
>>   towards the end of the series.
>> - Added a new patch, patch 13/14, fixing a typo in the CFLAGS_ASAN
>>   variables in the script used for building OVS in CI.  This typo was
>>   originally copy/pasted in the CFLAGS_UBSAN flags in v1 and v2 of
>>   this series.
>>
>> Changes in v2:
>> - Patch 3/11:
>>   - Remove cache line size aligment markers instead, as suggested by
>>     Ilya.
>>
>> Dumitru Ceara (7):
>>       treewide: Fix invalid bit shift operations.
>>       treewide: Avoid offsetting NULL pointers.
>>       ofp-actions: Ensure aligned accesses to masked fields.
>>       ofp-errors: Ensure parsed OFPT_ERROR messages are properly aligned.
>>       ofp-actions: Use aligned structures when decoding ofp actions.
>>       netdev-linux: Properly access 32-bit aligned rtnl_link_stats64 structs.
>>       ci: Add UB Sanitizer.
>>
>>
>>  .ci/linux-build.sh                   |    6 ++
>>  .github/workflows/build-and-test.yml |    5 ++
>>  configure.ac                         |    1 
>>  include/openvswitch/ofp-actions.h    |   15 +++--
>>  include/openvswitch/ofpbuf.h         |   24 ++++++-
>>  include/openvswitch/util.h           |    3 +
>>  lib/dpif-netlink.c                   |    2 -
>>  lib/dynamic-string.c                 |    8 ++
>>  lib/meta-flow.c                      |    4 +
>>  lib/netdev-linux.c                   |    9 ++-
>>  lib/ofp-actions.c                    |  111 
>> ++++++++++++++++++++++++++--------
>>  lib/ofp-errors.c                     |    2 +
>>  lib/ofpbuf.c                         |   43 +++++++++++++
>>  lib/ovsdb-data.c                     |   37 ++++++-----
>>  lib/ovsdb-data.h                     |    4 +
>>  lib/sset.c                           |    4 +
>>  lib/tnl-ports.c                      |    2 -
>>  ofproto/ofproto-dpif-xlate.c         |    3 +
>>  ofproto/ofproto.c                    |    2 -
>>  tests/atlocal.in                     |   16 +++++
>>  tests/automake.mk                    |    1 
>>  tests/daemon.at                      |    8 ++
>>  tests/ovs-macros.at                  |    5 ++
>>  tests/ovs-ofctl.at                   |    2 -
>>  tests/ovsdb-server.at                |   16 +++++
>>  tests/test-hash.c                    |    3 +
>>  tests/test-util.c                    |   13 ++--
>>  27 files changed, 279 insertions(+), 70 deletions(-)
>>
>>
> 
> Applied.  Thanks!
> 
> Unfortunately, at least one of ofp-* patches breaks ABI, so we can't
> backport them to stable branches.  For example, they will almost
> certainly break OVN if it will be linked with libopenvswitch dynamically.
> I backported treewide and netdev-linux patches though.
> 
> Best regards, Ilya Maximets.
> 

Thanks!

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to