On Tue, 6 Dec 2022 18:24:17 GMT, Phil Race <[email protected]> wrote:

>>> src/java.desktop/share/native/libawt/awt/medialib/awt_ImagingLib.c: In 
>>> function 'allocateRasterArray':
>>> src/java.desktop/share/native/libawt/awt/medialib/awt_ImagingLib.c:2944:73: 
>>> error: 'roff[3]' may be used uninitialized in this function 
>>> [-Werror=maybe-uninitialized]
>>>                              (((*inP&rasterP->sppsm.maskArray[c]) >> 
>>> roff[c])
>> 
>> That's weird. allocateRasterArray is at lines 2360-2575 .. so why are you 
>> seeing it at line 2944 ????
>
>> Thanks @prrace .
>> 
>> > That's weird. allocateRasterArray is at lines 2360-2575 .. so why are you 
>> > seeing it at line 2944 ????
>> 
>> Ummm, I could not determine the reason...
>> 
>> I assume AddressSanitizer detected memory errors because of following 2 
>> codes:
>> 
>> https://github.com/openjdk/jdk/blob/1e468320dc6e495343dbdf392cbcbda79672c7ad/src/java.desktop/share/native/libawt/awt/medialib/awt_ImagingLib.c#L2937
>> 
>> 
>> https://github.com/openjdk/jdk/blob/1e468320dc6e495343dbdf392cbcbda79672c7ad/src/java.desktop/share/native/libawt/awt/medialib/awt_ImagingLib.c#L3118
>> 
>> So I'd like to put `memset()` on these parts.
>> 
>> But I checked `if` and `else` blocks on above part. These are exactly the 
>> same.
>> 
>> https://github.com/openjdk/jdk/blob/1e468320dc6e495343dbdf392cbcbda79672c7ad/src/java.desktop/share/native/libawt/awt/medialib/awt_ImagingLib.c#L2937-L2965
>> 
>> 
>> https://github.com/openjdk/jdk/blob/1e468320dc6e495343dbdf392cbcbda79672c7ad/src/java.desktop/share/native/libawt/awt/medialib/awt_ImagingLib.c#L3118-L3153
>> 
>> I tried to modify from `if .. else` block to flat. AddressSanitizer did not 
>> detect memory error.
>> 
>> Could you give me any advice ?
> 
> Oh you are running a tool to find these issues ? I thought it was supposed to 
> be a build failure ?
> Or are you running the tool to try to understand the build failure.
> Tools are not always right in my experience.
> I think there's just as much chance as both being false positives as both 
> being correct.
> I think at some point the tools arm-wave that this could be a problem but it 
> is not provable. 
> As Magnus pointed out "newer" compilers aren't complaining here. 
> 
> I don't know what kind of advice you are seeking. If you are asking me to 
> somehow do better than the tools .. well I'd say its a whole lot easier to 
> just memset these to zero. Zero may not be the correct offset either .. but 
> it should be safer.

Hello @prrace .
I applied minimum changes which is reported by SLES12's GCC8.

-------------

PR: https://git.openjdk.org/jdk/pull/11475

Reply via email to