Re: [Iup-users] CID 210573 (#1 of 1): Dereference after null check (FORWARD_NULL)
Yes, rare but it could happen. Fixed and committed to SVN. Best, Scuri 2018-01-19 15:01 GMT-02:00 Ranier VF <ranier_...@hotmail.com>: > Hi, > Well can be rarely but. > > If afunc->system_default is NOT NULL and afunc->default_value is NULL, > and afunc->call_global_default IS NOT NULL: > > if ((!iupStrEqualNoCase(afunc->default_value, afunc->system_default)) || > > take false branch, and > > (afunc->call_global_default && iupGlobalDefaultColorChanged( > afunc->default_value))) > > take true branch, > > iupGlobalDefaultColorChange is called with afunc->default_value=NULL. > > int iupGlobalDefaultColorChanged(const char *name) > 51{ > 52 char str[50] = "_IUP_USER_DEFAULT_"; > 1. deref_parm_in_call: Function strcat dereferences name. > 53 strcat(str, name) > > Result segmentation fault, rare, but possible. > > Best. > Ranier > > De: Antonio Scuri <antonio.sc...@gmail.com> > Enviado: sexta-feira, 19 de janeiro de 2018 10:54 > Para: IUP discussion list. > Assunto: Re: [Iup-users] CID 210573 (#1 of 1): Dereference after null > check (FORWARD_NULL) > > The first if tests for: > > (afunc->default_value || afunc->system_default) && > > So default_value can be NULL if system_default is not. Or they are equal > and NOT NULL. > > The second if tests for: > > if ((!iupStrEqualNoCase(afunc->default_value, afunc->system_default)) || > > If they are not equal OR > > then they are equal and not NULL at: > > (afunc->call_global_default && iupGlobalDefaultColorChanged( > afunc->default_value))) > > There is no need for " && afunc->default_value" > > Best, > Scuri > > > 2018-01-19 0:06 GMT-02:00 Ranier VF <ranier_...@hotmail.com ranier_...@hotmail.com>>: > Hi, > Issue found by Coverity Scan. > CID 210573 (#1 of 1): Dereference after null check (FORWARD_NULL) > var_deref_model: Passing null pointer afunc->default_value to > iupGlobalDefaultColorChanged, which dereferences it. > > --- a\src\iup_classattrib.c Fri Oct 14 13:48:50 2016 > +++ b\src\iup_classattrib.c Fri Jan 19 00:01:03 2018 > @@ -990,7 +990,8 @@ > !(afunc->flags & IUPAF_HAS_ID)) > { >if ((!iupStrEqualNoCase(afunc->default_value, > afunc->system_default)) || > - (afunc->call_global_default && iupGlobalDefaultColorChanged( > afunc->default_value))) > + (afunc->call_global_default && afunc->default_value && > + iupGlobalDefaultColorChanged(afunc->default_value))) >{ > if ((!ih->handle && (afunc->flags & IUPAF_NOT_MAPPED)) || > (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED))) > > Best. > Ranier > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > ___ > Iup-users mailing list > Iup-users@lists.sourceforge.net<mailto:Iup-users@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/iup-users > > > > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > ___ > Iup-users mailing list > Iup-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/iup-users > -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ Iup-users mailing list Iup-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iup-users
Re: [Iup-users] CID 210573 (#1 of 1): Dereference after null check (FORWARD_NULL)
Hi, Well can be rarely but. If afunc->system_default is NOT NULL and afunc->default_value is NULL, and afunc->call_global_default IS NOT NULL: if ((!iupStrEqualNoCase(afunc->default_value, afunc->system_default)) || take false branch, and (afunc->call_global_default && iupGlobalDefaultColorChanged(afunc->default_value))) take true branch, iupGlobalDefaultColorChange is called with afunc->default_value=NULL. int iupGlobalDefaultColorChanged(const char *name) 51{ 52 char str[50] = "_IUP_USER_DEFAULT_"; 1. deref_parm_in_call: Function strcat dereferences name. 53 strcat(str, name) Result segmentation fault, rare, but possible. Best. Ranier De: Antonio Scuri <antonio.sc...@gmail.com> Enviado: sexta-feira, 19 de janeiro de 2018 10:54 Para: IUP discussion list. Assunto: Re: [Iup-users] CID 210573 (#1 of 1): Dereference after null check (FORWARD_NULL) The first if tests for: (afunc->default_value || afunc->system_default) && So default_value can be NULL if system_default is not. Or they are equal and NOT NULL. The second if tests for: if ((!iupStrEqualNoCase(afunc->default_value, afunc->system_default)) || If they are not equal OR then they are equal and not NULL at: (afunc->call_global_default && iupGlobalDefaultColorChanged(afunc->default_value))) There is no need for " && afunc->default_value" Best, Scuri 2018-01-19 0:06 GMT-02:00 Ranier VF <ranier_...@hotmail.com<mailto:ranier_...@hotmail.com>>: Hi, Issue found by Coverity Scan. CID 210573 (#1 of 1): Dereference after null check (FORWARD_NULL) var_deref_model: Passing null pointer afunc->default_value to iupGlobalDefaultColorChanged, which dereferences it. --- a\src\iup_classattrib.c Fri Oct 14 13:48:50 2016 +++ b\src\iup_classattrib.c Fri Jan 19 00:01:03 2018 @@ -990,7 +990,8 @@ !(afunc->flags & IUPAF_HAS_ID)) { if ((!iupStrEqualNoCase(afunc->default_value, afunc->system_default)) || - (afunc->call_global_default && iupGlobalDefaultColorChanged(afunc->default_value))) + (afunc->call_global_default && afunc->default_value && + iupGlobalDefaultColorChanged(afunc->default_value))) { if ((!ih->handle && (afunc->flags & IUPAF_NOT_MAPPED)) || (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED))) Best. Ranier -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ Iup-users mailing list Iup-users@lists.sourceforge.net<mailto:Iup-users@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/iup-users -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ Iup-users mailing list Iup-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iup-users
Re: [Iup-users] CID 210573 (#1 of 1): Dereference after null check (FORWARD_NULL)
No. I didn't change it. The logic is correct. You can not replace call_global_default by default_value. Best, Scuri 2018-01-19 11:15 GMT-02:00 Pete Lomax via Iup-users < iup-users@lists.sourceforge.net>: > On Fri, 19/1/18, Antonio Scuriwrote: > > >then they are equal and not NULL at: > > > > (afunc->call_global_default && iupGlobalDefaultColorChanged( > afunc->default_value))) > > By that logic you could/should/may as well change it to: > > (afunc->default_value && iupGlobalDefaultColorChanged( > afunc->default_value))) > > Is that what you did? > > Pete > > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > ___ > Iup-users mailing list > Iup-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/iup-users > -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ Iup-users mailing list Iup-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iup-users
Re: [Iup-users] CID 210573 (#1 of 1): Dereference after null check (FORWARD_NULL)
On Fri, 19/1/18, Antonio Scuriwrote: >then they are equal and not NULL at: > > (afunc->call_global_default && > iupGlobalDefaultColorChanged(afunc->default_value))) By that logic you could/should/may as well change it to: (afunc->default_value && iupGlobalDefaultColorChanged(afunc->default_value))) Is that what you did? Pete -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ Iup-users mailing list Iup-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iup-users
Re: [Iup-users] CID 210573 (#1 of 1): Dereference after null check (FORWARD_NULL)
The first if tests for: (afunc->default_value || afunc->system_default) && So default_value can be NULL if system_default is not. Or they are equal and NOT NULL. The second if tests for: if ((!iupStrEqualNoCase(afunc->default_value, afunc->system_default)) || If they are not equal OR then they are equal and not NULL at: (afunc->call_global_default && iupGlobalDefaultColorChanged(afunc->default_value))) There is no need for " && afunc->default_value" Best, Scuri 2018-01-19 0:06 GMT-02:00 Ranier VF: > Hi, > Issue found by Coverity Scan. > CID 210573 (#1 of 1): Dereference after null check (FORWARD_NULL) > var_deref_model: Passing null pointer afunc->default_value to > iupGlobalDefaultColorChanged, which dereferences it. > > --- a\src\iup_classattrib.c Fri Oct 14 13:48:50 2016 > +++ b\src\iup_classattrib.c Fri Jan 19 00:01:03 2018 > @@ -990,7 +990,8 @@ > !(afunc->flags & IUPAF_HAS_ID)) > { >if ((!iupStrEqualNoCase(afunc->default_value, > afunc->system_default)) || > - (afunc->call_global_default && iupGlobalDefaultColorChanged( > afunc->default_value))) > + (afunc->call_global_default && afunc->default_value && > + iupGlobalDefaultColorChanged(afunc->default_value))) >{ > if ((!ih->handle && (afunc->flags & IUPAF_NOT_MAPPED)) || > (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED))) > > Best. > Ranier > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > ___ > Iup-users mailing list > Iup-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/iup-users > > -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ Iup-users mailing list Iup-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iup-users
[Iup-users] CID 210573 (#1 of 1): Dereference after null check (FORWARD_NULL)
Hi, Issue found by Coverity Scan. CID 210573 (#1 of 1): Dereference after null check (FORWARD_NULL) var_deref_model: Passing null pointer afunc->default_value to iupGlobalDefaultColorChanged, which dereferences it. --- a\src\iup_classattrib.c Fri Oct 14 13:48:50 2016 +++ b\src\iup_classattrib.c Fri Jan 19 00:01:03 2018 @@ -990,7 +990,8 @@ !(afunc->flags & IUPAF_HAS_ID)) { if ((!iupStrEqualNoCase(afunc->default_value, afunc->system_default)) || - (afunc->call_global_default && iupGlobalDefaultColorChanged(afunc->default_value))) + (afunc->call_global_default && afunc->default_value && + iupGlobalDefaultColorChanged(afunc->default_value))) { if ((!ih->handle && (afunc->flags & IUPAF_NOT_MAPPED)) || (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED))) Best. Ranier iup_classattrib.patch Description: iup_classattrib.patch -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ Iup-users mailing list Iup-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iup-users