RFR(XS) 8191852: Null pointer dereference in ciKlass::get_Klass of ciKlass.hpp:58
dean.long at oracle.com
dean.long at oracle.com
Wed Dec 13 23:09:11 UTC 2017
On 12/13/17 1:08 PM, Vladimir Kozlov wrote:
> On 12/13/17 12:45 PM, dean.long at oracle.com wrote:
>> https://bugs.openjdk.java.net/browse/JDK-8191852
>> http://cr.openjdk.java.net/~dlong/8191852/webrev/
>>
>> Our static analysis tool was complaining about a possible null
>> pointer dereference in ciKlass::get_Klass(), because of this code:
>>
>> 237. _holder = CURRENT_ENV->get_instance_klass(fd->field_holder());
>> [...]
>> 240. Klass* k = _holder->get_Klass();
>>
>> so I added NULL checks in get_instance_klass and a few other similar
>> functions.
>
> No, you don't ;)
Yes, you're right. Sorry about that :-)
> You replaced NULL checks which return NULL with asserts. It is not the
> same. Are you sure that in all those cases we will not get NULL?
It didn't show up in my testing. But what I could try is to remove the
asserts and rerun the static analysis. Then get_instance_klass() would be:
ciInstanceKlass* get_instance_klass(Klass* o) {
return get_metadata(o)->as_instance_klass();
}
In the first example above, static analysis would need to verify that
fd->field_holder() can never return NULL. If that sounds reasonable,
I'll rerun the static analysis.
dl
>
> Thanks,
> Vladimir
>
>>
>> dl
More information about the hotspot-compiler-dev
mailing list