RFR(xs): 8155574: ClassLoader::initialize_module_loader_map crashes if the char_buf is not NULL terminated
Ioi Lam
ioi.lam at oracle.com
Sat May 7 03:06:51 UTC 2016
Looks good. Thanks Calvin!
- Ioi
On 5/6/16 9:52 AM, Calvin Cheung wrote:
> Hi Ioi,
>
> Thanks for your review.
>
> webrev updated: http://cr.openjdk.java.net/~ccheung/8155574/webrev.01/
>
> Testing in progress.
>
> thanks,
> Calvin
>
> On 5/6/16, 4:14 AM, Ioi Lam wrote:
>> Hi Calvin,
>>
>> char* char_buf = (char*)buffer;
>> - int buflen = (int)strlen(char_buf);
>> char* begin_ptr = char_buf;
>> char* end_ptr = strchr(begin_ptr, '\n');
>>
>> The strchr() function also expects the buffer to be NUL terminated.
>> So you might have problem later
>>
>> 985 end_ptr = strchr(begin_ptr, '\n'); <<<<< HERE
>> 986 }
>>
>> It will be must safer if you allocate an extra byte, and explicitly
>> set it to zero:
>>
>> char* buffer = NEW_RESOURCE_ARRAY(char, size+1);
>> buffer[size] = '\0';
>>
>> Thanks
>> - Ioi
>>
>>
>>
>> On 5/5/16 11:20 AM, Calvin Cheung wrote:
>>>
>>> Please review this small change for fixing char_buf may not be NULL
>>> terminated.
>>> Instead of finding the length of char_buf by using strlen(), this
>>> fix uses the size returned from JImageFindResource().
>>>
>>> bug: https://bugs.openjdk.java.net/browse/JDK-8155574
>>> webrev: http://cr.openjdk.java.net/~ccheung/8155574/webrev.00/
>>>
>>> Testing:
>>> JPRT
>>> RBT on hotspot_runtime
>>>
>>> thanks,
>>> Calvin
>>
More information about the hotspot-runtime-dev
mailing list