RFR: 8254270: linux 32 bit build doesn't compile libjdwp/log_messages.c [v4]

David Holmes david.holmes at oracle.com
Fri Nov 6 13:01:10 UTC 2020


On 6/11/2020 10:08 pm, Thomas Stuefe wrote:
> On Fri, 6 Nov 2020 12:02:28 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
> 
>>> src/jdk.jdwp.agent/share/native/libjdwp/log_messages.c line 84:
>>>
>>>> 82:     // Truncate milliseconds in buffer large enough to hold the
>>>> 83:     // value which is always < 1000 (and so a maximum of 3 digits for "%.3s")
>>>> 84:     char tmp[10 + 1];
>>>
>>> I was wrong yesterday. Max len of %d would be 11 chars (if INT_MIN). Can you make this buffer 11 chars please?
>>>
>>> (This error would have had no practical consequence: tmp[] would be filled to the brim, leaving out the terminating zero, and since we then print with %.3s, this would have had no negative effect. But its still better to plan for \0 explicitly)
>>
>>> INT_MIN = "-2147483647" = 11
>> If millisecs is unsigned do we not  have to account for the minus sign?
>>
>> Why can't tmp just be 20 and we don't have to count characters since snprintf will null terminate it?
> 
> Sure, thats fine too!

Don't we need the value to be smaller so that gcc "calculates" the total 
to be within the size of the buffer?

David
-----

> -------------
> 
> PR: https://git.openjdk.java.net/jdk/pull/1067
> 


More information about the serviceability-dev mailing list