On 12 Sep 2024, at 14:58, Ilya Maximets wrote:
> On 9/3/24 11:37, Eelco Chaudron wrote: >> The odp_flow_format() function applies a wildcard mask when a >> mask for a given key was not present. However, in the context of >> installing flows in the datapath, the absence of a mask actually >> indicates that the key should be ignored, meaning it should not >> be masked at all. >> >> To address this inconsistency, odp_flow_format() now includes an >> option to skip formatting keys that are missing a mask. >> >> Signed-off-by: Eelco Chaudron <[email protected]> >> --- >> lib/dpctl.c | 4 ++-- >> lib/dpif-netdev.c | 6 +++--- >> lib/dpif.c | 4 ++-- >> lib/odp-util.c | 31 ++++++++++++++++++------------- >> lib/odp-util.h | 2 +- >> lib/tnl-ports.c | 2 +- >> ofproto/ofproto-dpif.c | 2 +- >> tests/test-odp.c | 6 ++++-- >> 8 files changed, 32 insertions(+), 25 deletions(-) > > > Hi, Eelco. > > I got a notification from oss-fuzz that this change broke the build > of the fuzzing target: > https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=71524 > > Step #3 - "compile-afl-address-x86_64": mv -f $depbase.Tpo $depbase.Po > Step #3 - "compile-afl-address-x86_64": tests/oss-fuzz/odp_target.c:84:72: > error: too few arguments to function call, expected 8, have 7 > Step #3 - "compile-afl-address-x86_64": 83 | > odp_flow_format(odp_key.data, odp_key.size, > Step #3 - "compile-afl-address-x86_64": | ~~~~~~~~~~~~~~~ > Step #3 - "compile-afl-address-x86_64": 84 | > odp_mask.data, odp_mask.size, NULL, &out, false); > Step #3 - "compile-afl-address-x86_64": | > ^ > Step #3 - "compile-afl-address-x86_64": ./lib/odp-util.h:171:6: note: > 'odp_flow_format' declared here > Step #3 - "compile-afl-address-x86_64": 171 | void odp_flow_format(const > struct nlattr *key, size_t key_len, > Step #3 - "compile-afl-address-x86_64": | ^ > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Step #3 - "compile-afl-address-x86_64": 172 | const > struct nlattr *mask, size_t mask_len, > Step #3 - "compile-afl-address-x86_64": | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Step #3 - "compile-afl-address-x86_64": 173 | const > struct hmap *portno_names, struct ds *, > Step #3 - "compile-afl-address-x86_64": | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Step #3 - "compile-afl-address-x86_64": 174 | bool > verbose, bool skip_no_mask); > Step #3 - "compile-afl-address-x86_64": | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Step #3 - "compile-afl-address-x86_64": 1 error generated. > Step #3 - "compile-afl-address-x86_64": make: *** [Makefile:4718: > tests/oss-fuzz/odp_target.o] Error 1 > Step #3 - "compile-afl-address-x86_64": > ******************************************************************************** > Step #3 - "compile-afl-address-x86_64": Failed to build. > Step #3 - "compile-afl-address-x86_64": To reproduce, run: > Step #3 - "compile-afl-address-x86_64": python infra/helper.py build_image > openvswitch > Step #3 - "compile-afl-address-x86_64": python infra/helper.py build_fuzzers > --sanitizer address --engine afl --architecture x86_64 openvswitch > Step #3 - "compile-afl-address-x86_64": > ******************************************************************************** > Finished Step #3 - "compile-afl-address-x86_64" > ERROR > ERROR: build step 3 "gcr.io/cloud-builders/docker" failed: step exited with > non-zero status: 1 > > > Could you, please, send a fix? Sent a patch… I learned something new today, as I was not aware OVS was part of this project. Should we do the build as part of the CI? Cheers, Eelco _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
