On 8/14/24 14:03, Simon Horman wrote:
> On Wed, Aug 14, 2024 at 12:33:03PM +0200, Ilya Maximets wrote:
>> The 'parse()' callback has a function type with 'void *change'
>> argument.  In all other cases it is used this way, except for
>> the route_table_parse().  That generates UBsan error:
>>
>>   lib/netlink-notifier.c:190:25: runtime error: call to function
>>      route_table_parse through pointer to incorrect function type
>>      'int (*)(struct ofpbuf *, void *)'
>>   lib/route-table.c:227: note: route_table_parse defined here
>>     0 0x24d0 in nln_run lib/netlink-notifier.c:190:25
>>     1 0x7b39 in route_table_run lib/route-table.c:137:9
>>     2 0x5565 in netdev_vport_run lib/netdev-vport.c:364:5
>>     3 0xe978 in netdev_run lib/netdev.c:192:13
>>     4 0x2f25 in main vswitchd/ovs-vswitchd.c:132:9
>>     5 0xa1c9 in __libc_start_call_main
>>     6 0xa28a in __libc_start_main
>>     7 0xf004 in _start (vswitchd/ovs-vswitchd+0x726004)
>>
>> Instead of turning off function sanitizer, let's just define
>> this callback as all the other parsing callbacks and cast the
>> void pointer inside the implementation.
>>
>> This fixes system tests on Ubuntu 24.04 with UBsan.
>>
>> Signed-off-by: Ilya Maximets <[email protected]>
> 
> Acked-by: Simon Horman <[email protected]>
> 

Applied to all branches down to 2.17.  Thanks!

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to