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

Reply via email to