RFR: 8254270: linux 32 bit build doesn't compile libjdwp/log_messages.c [v4]
Thomas Stuefe
stuefe at openjdk.java.net
Fri Nov 6 06:47:56 UTC 2020
On Fri, 6 Nov 2020 01:04:09 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> Apply patch suggested by @cl4es in the bug report. Passes linux-x86-open,linux-x64-open,linux-s390x-open,linux-arm32-debug,linux-ppc64le-debug builds with this patch, and tier1.
>>
>> thanks,
>> Coleen
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
>
> Adjust millisecond format.
Some things are still unclear about this. My first calculation may have been a bit off too.
The gcc error was this:
`log_messages.c:81:11: note: 'snprintf' output between 6 and 86 bytes into a destination of size 81`
The maximum ("and 86 bytes") is not clear to me now:
First string: a buffer of DT_SIZE = 20
Third string: a buffer of TZ_SIZE = 57
I assume the compiler assumes that those strings are zero terminated. So first string 19 chars max, third string 56 chars max.
Then, we have the %.3d - the max len of this is not 10, as I assumed, but 11: if argument = INT_MIN = "-2147483647" = 11 chars.
The format string itself brings two characters.
So we have:
19 + 56 + 11 + 2 = 88.
Including terminating zero, we get 89.
So the compiler should complain about 89 characters put into the 81 character buffer, not 86.
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)
-------------
Changes requested by stuefe (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/1067
More information about the serviceability-dev
mailing list