On 5 Feb 2025, at 17:34, Ilya Maximets wrote:
> On 2/5/25 17:03, Eelco Chaudron wrote:
>> Ensure a valid class is found before calling it's function pointer.
>>
>> Signed-off-by: Eelco Chaudron <[email protected]>
>> ---
>> ofproto/ofproto.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
>> index dbea03c8f..24e8aae30 100644
>> --- a/ofproto/ofproto.c
>> +++ b/ofproto/ofproto.c
>> @@ -1897,7 +1897,7 @@ ofproto_type_run(const char *datapath_type)
>> datapath_type = ofproto_normalize_type(datapath_type);
>> class = ofproto_class_find__(datapath_type);
>>
>> - error = class->type_run ? class->type_run(datapath_type) : 0;
>> + error = (class && class->type_run) ? class->type_run(datapath_type) : 0;
>> if (error && error != EAGAIN) {
>> VLOG_ERR_RL(&rl, "%s: type_run failed (%s)",
>> datapath_type, ovs_strerror(error));
>> @@ -1913,7 +1913,7 @@ ofproto_type_wait(const char *datapath_type)
>> datapath_type = ofproto_normalize_type(datapath_type);
>> class = ofproto_class_find__(datapath_type);
>>
>> - if (class->type_wait) {
>> + if (class && class->type_wait) {
>> class->type_wait(datapath_type);
>> }
>> }
>
> These should be assertions as well. This function should not be called
> for a datapath type that wasn't previously registered.
ACK, will fix in v2.
//Eelco
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev