On 2/25/22 18:29, Jeffrey Walton wrote:
>> @@ -270,7 +277,7 @@ static inline struct ofpbuf *ofpbuf_from_list(const 
>> struct ovs_list *list)
>>  static inline bool ofpbuf_equal(const struct ofpbuf *a, const struct ofpbuf 
>> *b)
>>  {
>>      return a->size == b->size &&
>> -           memcmp(a->data, b->data, a->size) == 0;
>> +           (a->size == 0 || memcmp(a->data, b->data, a->size) == 0);
>>  }
> Please forgive my ignorance... a != 0 and b == 0? Or can b never be 0?
> 

a and b can't be zero at this point, otherwise we would've de-referenced
NULL in "a->size == b->size".

I guess I did it again, I used the fact that if a->size == b->size == 0
then we should assume that the ofpbuf 'a' and ofpbuf 'b' are equal,
equivalent to "empty" ofpbufs, regardless of values of 'a->data' and
b->data'.

But this change doesn't really belong in this patch, it should've been
part of 8ed26a8be3be ("treewide: Don't pass NULL to library functions
that expect non-NULL.").

I can split it out if needed and respin a v5 after v4 gets some reviews.

Thanks for pointing it out!

Regards,
Dumitru

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to