Possible NULL pointer dereference in GCC's vec code?
Jeff Law
law@redhat.com
Tue Feb 12 04:08:00 GMT 2013
On 02/11/13 16:46, Ian Lance Taylor wrote:
>
> But those cases are passing 1 to vec_safe_reserve, which in turn
> passes 1 to calculate_allocation, so calculate_allocation can not
> return 0, so vec_reserve can not return NULL.
>
> At least that is how it seems to me.
Yes, you're right. I got too deep into looking at just what was visible
in the preprocessed code (c-common I think) and didn't look at
calculate_allocation from vec.c.
So this a false positive for my null pointer dereference checker.
There's nothing to propagate the fact that calculate_allocation can not
return null if reserve is > 0.
This is also a good example of code which can be improved by isolating
the unexecutable paths where the calls to vec_safe_reserve return NULL.
Thanks for the sanity check...
Jeff
More information about the Gcc
mailing list