Hi Phil, sorry for that! I fixed it, there is an other occurrence, too. I double checked all the casts, there was also a mp_flags <-> mp_sign wrong in mpi.c http://cr.openjdk.java.net/~goetz/wr16/8170525-awt-dev/webrev.05/ (Also rebased the change)
Best regards, Goetz > -----Original Message----- > From: Phil Race [mailto:philip.r...@oracle.com] > Sent: Monday, December 05, 2016 7:26 PM > To: Lindenmaier, Goetz <goetz.lindenma...@sap.com>; Sergey Bylokhov > <sergey.bylok...@oracle.com> > Cc: awt-...@openjdk.java.net; 2d-dev <2d-dev@openjdk.java.net> > Subject: Re: [OpenJDK 2D-Dev] <AWT Dev> RFR(M): 8170525: Fix minor > issues in awt coding > > 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.r...@oracle.com] > >> Sent: Friday, December 02, 2016 8:46 PM > >> To: Lindenmaier, Goetz <goetz.lindenma...@sap.com>; Sergey Bylokhov > >> <sergey.bylok...@oracle.com> > >> Cc: awt-...@openjdk.java.net; 2d-dev <2d-dev@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.r...@oracle.com] > >>>> Sent: Donnerstag, 1. Dezember 2016 22:31 > >>>> To: Lindenmaier, Goetz <goetz.lindenma...@sap.com>; Sergey > Bylokhov > >>>> <sergey.bylok...@oracle.com>; Vincent Ryan > >> <vincent.x.r...@oracle.com> > >>>> Cc: awt-...@openjdk.java.net; 2d-dev <2d-dev@openjdk.java.net>; > >> security- > >>>> d...@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.r...@oracle.com] > >>>>>> Sent: Mittwoch, 30. November 2016 20:59 > >>>>>> To: Sergey Bylokhov <sergey.bylok...@oracle.com>; Lindenmaier, > >> Goetz > >>>>>> <goetz.lindenma...@sap.com>; Vincent Ryan > >> <vincent.x.r...@oracle.com> > >>>>>> Cc: awt-...@openjdk.java.net; 2d-dev <2d-dev@openjdk.java.net>; > >> security- > >>>>>> d...@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.r...@oracle.com] > >>>>>>>>> Sent: Mittwoch, 30. November 2016 14:53 > >>>>>>>>> To: Lindenmaier, Goetz <goetz.lindenma...@sap.com> > >>>>>>>>> Cc: awt-...@openjdk.java.net; security-...@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.lindenma...@sap.com > >> <mailto:goetz.lindenma...@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. > >>>>>>>>>