Possible wrong checks are created when allocating with vn_cs_decoder_alloc_temp
When I look at the code I see many calls
*val = vn_cs_decoder_alloc_temp(dec, sizeof(vn_object_id));
if (!val)
return;
The check seems to be wrong, because it doesn't check whether the return value is not NULL. In fact if the test would pass we would already have a null-pointer deref in the line above. It seems the error comes from this line: https://gitlab.freedesktop.org/olv/venus-protocol/-/blob/master/vn_protocol.py#L627
The line should probably be
check_stmt = 'if (!%s) return' % self._var_name(level, level > 0)
passing the parameters to the variable like above, when the alloc_stmt is created.