[OpenJDK 2D-Dev] <AWT Dev> RFR(M): 8170525: Fix minor issues in awt coding

Phil Race philip.race at oracle.com
Mon Dec 5 18:26:09 UTC 2016


I tried it .. and just as well I did. It fails in the crypto code on Mac.

jdk/src/jdk.crypto.ec/share/native/libsunec/impl/ec.c:261:12: error: expression which evaluates to zero treated as a null pointer constant of type 'mp_digit *' (aka 'unsigned long *') [-Werror,-Wnon-literal-null-conversion]
     k.dp = (mp_digit)0;
            ^~~~~~~~~~~
1 error generated.

-phil.



On 12/3/2016 9:53 AM, Lindenmaier, Goetz wrote:
> Hi Phil,
>
> that would be great, unfortunately I don't have access to JPRT.
>
> Thanks,
>    Goetz.
>   
>> -----Original Message-----
>> From: Phil Race [mailto:philip.race at oracle.com]
>> Sent: Friday, December 02, 2016 8:46 PM
>> To: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>; Sergey Bylokhov
>> <Sergey.Bylokhov at oracle.com>
>> Cc: awt-dev at openjdk.java.net; 2d-dev <2d-dev at openjdk.java.net>
>> Subject: Re: [OpenJDK 2D-Dev] <AWT Dev> RFR(M): 8170525: Fix minor
>> issues in awt coding
>>
>> I had no other comments, except that it would be good to be sure
>> that this builds on all relevant platforms .. using the 'blessed' compilers.
>> If you like I can submit a JPRT job for you based on this patch.
>>
>> -phil.
>>
>> On 12/01/2016 11:58 PM, Lindenmaier, Goetz wrote:
>>> Hi Phil,
>>>
>>> I added the initialization to the other function.
>>> http://cr.openjdk.java.net/~goetz/wr16/8170525-awt-dev/webrev.04/
>>>
>>> I missed that because Coverity didn't complain.
>>> It's not a perfect tool, but it finds sufficient issues
>>> to make it worthwhile.   Is the other awt code fine?
>>>
>>> Best regards,
>>>     Goetz.
>>>
>>>
>>>
>>>> -----Original Message-----
>>>> From: Phil Race [mailto:philip.race at oracle.com]
>>>> Sent: Donnerstag, 1. Dezember 2016 22:31
>>>> To: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>; Sergey Bylokhov
>>>> <Sergey.Bylokhov at oracle.com>; Vincent Ryan
>> <vincent.x.ryan at oracle.com>
>>>> Cc: awt-dev at openjdk.java.net; 2d-dev <2d-dev at openjdk.java.net>;
>> security-
>>>> dev at openjdk.java.net
>>>> Subject: Re: [OpenJDK 2D-Dev] <AWT Dev> RFR(M): 8170525: Fix minor
>> issues
>>>> in awt coding
>>>>
>>>> Sorry. it is
>>>>        ops->GetRasInfo(env, ops, lockInfo);
>>>> that initialises it ..
>>>>
>>>>
>>>> That is still before the dereference
>>>> Anyway, what was the reason for updating one function, but not the
>> other.
>>>> I don't mind the change, but the inconsistency looks odd.
>>>>
>>>> -phil.
>>>>
>>>> On 12/01/2016 03:03 AM, Lindenmaier, Goetz wrote:
>>>>> Hi Phil,
>>>>>
>>>>>> Did you actually compile this ? The variable is called "rasBase", not
>>>>>> "resBase".
>>>>> Yes, I compiled it, and I fixed the error, but that was another repo
>>>>> I use for the coverity checks.  Somehow it did not find its way into
>>>>> the webrev.
>>>>>
>>>>> I don't see where ops->Lock() initializes this field.
>>>>> ops->GetRasInfo(env, ops, lockInfo); does so if it resolves
>>>>> to BufImg_GetRasInfo().  I can't look in our code scan results
>>>>> because the issue is gone after fixing it, that lists the path
>>>>> of execution that leads to the issue.
>>>>> If you are sure this is correct I will remove the initialization,
>>>>> else I will also put it into the other method.
>>>>>
>>>>> DBN_GetPixelPointer checks lockInfo->rasBase for NULL and
>>>>> does what looks like the error case if it's NULL. Therefore NULL
>>>>> seemed a good initialization to me.
>>>>>
>>>>> Best regards,
>>>>>      Goetz.
>>>>>
>>>>>
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Phil Race [mailto:philip.race at oracle.com]
>>>>>> Sent: Mittwoch, 30. November 2016 20:59
>>>>>> To: Sergey Bylokhov <Sergey.Bylokhov at oracle.com>; Lindenmaier,
>> Goetz
>>>>>> <goetz.lindenmaier at sap.com>; Vincent Ryan
>> <vincent.x.ryan at oracle.com>
>>>>>> Cc: awt-dev at openjdk.java.net; 2d-dev <2d-dev at openjdk.java.net>;
>> security-
>>>>>> dev at openjdk.java.net
>>>>>> Subject: Re: [OpenJDK 2D-Dev] <AWT Dev> RFR(M): 8170525: Fix minor
>>>> issues
>>>>>> in awt coding
>>>>>>
>>>>>> Hi Goetz,
>>>>>>
>>>>>>>      DataBufferNative.c
>>>>>>> Using uninitialized value lockInfo.rasBase when calling
>>>> DBN_GetPixelPointer.
>>>>>>       75     lockInfo.resBase = NULL;
>>>>>>
>>>>>> Did you actually compile this ? The variable is called "rasBase", not
>>>>>> "resBase".
>>>>>>
>>>>>> And strictly there is no problem since inside  DBN_GetPixelPointer
>>>>>> the code calls ops->Lock which should initialise this.
>>>>>> A "rasBase" of 0 isn't really any better than a random one ..
>>>>>>
>>>>>> Also I don't see why there's a problem here and not in
>>>>>> the function immediately following since it is the exact same case.
>>>>>>
>>>>>> -phil.
>>>>>>
>>>>>> On 11/30/2016 10:00 AM, Sergey Bylokhov wrote:
>>>>>>> cc 2d-dev.
>>>>>>>
>>>>>>> On 30.11.16 18:41, Lindenmaier, Goetz wrote:
>>>>>>>> Hi Vincent,
>>>>>>>>
>>>>>>>> thanks for the quit review!
>>>>>>>> Good catch that I lost the change to p11_mutex.c ... I had to change
>>>>>>>> it and it fell out of my patches.
>>>>>>>> I edited the Last Modified Date, and also updated the copyright
>>>>>>>> messages.
>>>>>>>> New webrev:
>>>>>>>> http://cr.openjdk.java.net/~goetz/wr16/8170525-awt-dev/
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>>      Goetz.
>>>>>>>>
>>>>>>>> (Am I correct that your openJdk name is Vinnie?)
>>>>>>>>
>>>>>>>>> -----Original Message-----
>>>>>>>>> From: Vincent Ryan [mailto:vincent.x.ryan at oracle.com]
>>>>>>>>> Sent: Mittwoch, 30. November 2016 14:53
>>>>>>>>> To: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>
>>>>>>>>> Cc: awt-dev at openjdk.java.net; security-dev at openjdk.java.net
>>>>>>>>> Subject: Re: RFR(M): 8170525: Fix minor issues in awt coding
>>>>>>>>>
>>>>>>>>> Hello Goetz,
>>>>>>>>>
>>>>>>>>> Please modify the bug summary to reference ECC too.
>>>>>>>>> Your ECC changes look fine but the ‘Last Modified Date’ line in the
>>>>>>>>> 4 source
>>>>>>>>> code headers will need to be updated/added.
>>>>>>>>>
>>>>>>>>> BTW p11_mutex.c is listed below but appears to be missing from
>> the
>>>>>>>>> webrev.
>>>>>>>>>
>>>>>>>>> Thanks.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>        On 30 Nov 2016, at 13:12, Lindenmaier, Goetz
>>>>>>>>> <goetz.lindenmaier at sap.com
>> <mailto:goetz.lindenmaier at sap.com> >
>>>>>> wrote:
>>>>>>>>>        Hi,
>>>>>>>>>
>>>>>>>>>        I’d like to propose a row of smaller fixes where code is noted
>>>>>>>>> down a
>>>>>>>>> bit questionable.
>>>>>>>>>        SAP’s quality process requires that we fix these in our internal
>>>>>>>>> delivery,
>>>>>>>>> and I
>>>>>>>>>        Would like to share my fixes with openJdk.  Some of these fixes
>>>>>>>>> are of
>>>>>>>>> more
>>>>>>>>>        theoretical nature as how I understand the code paths never
>>>>>>>>> allow the
>>>>>>>>>        problematic situation, but fixing it nevertheless assures that
>>>>>>>>> nothing is
>>>>>>>>>        overseen if the code changes.  Most changes are in libawt_xawt,
>>>>>>>>> some
>>>>>>>>>        are in libsunec.
>>>>>>>>>
>>>>>>>>>        I’d appreciate a review:
>>>>>>>>>        http://cr.openjdk.java.net/~goetz/wr16/8170525-
>> awt/webrev.01/
>>>>>>>>>        Changes in detail:
>>>>>>>>>
>>>>>>>>>        awt_InputMethod.c:
>>>>>>>>>
>>>>>>>>>        One might overrun the 100 byte fixed-size string
>>>>>>>>> statusWindow->status
>>>>>>>>> by copying text->string.multi_byte without checking the length.
>>>>>>>>>
>>>>>>>>>        gtk3_interface.c:
>>>>>>>>>
>>>>>>>>>        This less-than-zero comparison of an unsigned value is never
>> true.
>>>>>>>>>        Using uninitialized value color. Field color.alpha is
>>>>>>>>> uninitialized.
>>>>>>>>>        E.g. used at gtk3_interface.c:2287.
>>>>>>>>>
>>>>>>>>>        XToolkit.c
>>>>>>>>>
>>>>>>>>>        Using uninitialized value ret_timeout.
>>>>>>>>>        E.g. in XToolkit.c:6809.
>>>>>>>>>
>>>>>>>>>        XWindow.c
>>>>>>>>>
>>>>>>>>>        Argument is incompatible with corresponding format string
>>>>>>>>> conversion.
>>>>>>>>>
>>>>>>>>>        splashscreen_sys.c
>>>>>>>>>
>>>>>>>>>        Overflowed or truncated value (or a value computed from an
>>>>>>>>> overflowed or truncated value) (gdk_scale > 0) ? native_scale *
>>>>>>>>> (double)gdk_scale : native_scale used as return value.
>>>>>>>>>
>>>>>>>>>        ec.c
>>>>>>>>>
>>>>>>>>>        Using uninitialized value k.dp when calling mp_clear.
>>>>>>>>>
>>>>>>>>>        ecdecode.c
>>>>>>>>>
>>>>>>>>>        You might overrun the 291 byte fixed-size string genenc by
>> copying
>>>>>>>>> curveParams->geny without checking the length.
>>>>>>>>>        Added sanity check before doing the string concatenation.
>>>>>>>>>
>>>>>>>>>        ecl_mult.c
>>>>>>>>>
>>>>>>>>>        Using uninitialized value kt.flag when calling
>>>>>>>>> *group->point_mul. (The
>>>>>>>>> function pointer resolves to ec_GF2m_pt_mul_mont.)
>>>>>>>>>
>>>>>>>>>        mpi.c
>>>>>>>>>
>>>>>>>>>        Using uninitialized value s. Field s.flag is uninitialized when
>>>>>>>>> calling
>>>>>>>>> s_mp_exch.
>>>>>>>>>        Using uninitialized value tmp. Field tmp.flag is uninitialized when
>>>>>>>>> calling s_mp_exch
>>>>>>>>>        Using uninitialized value t.dp when calling mp_clear.
>>>>>>>>>
>>>>>>>>>        p11_mutex.c
>>>>>>>>>
>>>>>>>>>        Using uninitialized value *ckpInitArgs. Field ckpInitArgs->flags is
>>>>>>>>> uninitialized when calling memcpy.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>        DataBufferNative.c
>>>>>>>>>
>>>>>>>>>        Using uninitialized value lockInfo.rasBase when calling
>>>>>>>>> BN_GetPixelPointer.
>>>>>>>>>
>>>>>>>>>        fontpath.c
>>>>>>>>>
>>>>>>>>>        You might overrun the 512 byte fixed-size string fontDirPath by
>>>>>>>>> copying
>>>>>>>>> DirP->name[index] without checking the length.
>>>>>>>>>




More information about the 2d-dev mailing list