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

Reply via email to