Re: cppcheck on Dillo source

Jorge Arellano Cid <[email protected]>
Newsgroups gmane.comp.web.dillo.devel
Message-ID <[email protected]>
Hi Nick,

On Sat, Jul 09, 2016 at 12:35:10PM +0100, Nick Warne wrote:
> Hi all,
> 
> While waiting for the Tour De France to start on TV, I ran cppcheck on
> Dillo source for something to do - a few errors were picked up!
> 
> I have compacted the findings (with two comments from me)and attached it
> as a plain text file.

  Thanks for the report. I personally didn't know of cppcheck.

  We have used several code cleanup tools in the past and we usually
honour them as sometimes they catch important flaws.

  A bunch of patches was just committed. You may peruse them with
"hg log -vp" for the details/explanations.


> Checking ../../slackbuilds/dillo/hg/dillo/dpi/file.c...
> [../../slackbuilds/dillo/hg/dillo/dpi/file.c:356]: (error) syntax error
> 
>       if S_ISDIR (finfo->mode) {
> Nick->   maybe?:
>       if (S_ISDIR (finfo->mode)) {

  Done.

> Checking ../../slackbuilds/dillo/hg/dillo/dpid/dpid.c...
> [../../slackbuilds/dillo/hg/dillo/dpid/dpid.c:465]: (error) Resource leak: dpidrc_stream
> 
>       return -1;
> Nick->   maybe?:
>       return (-1);

  Done.

> Checking ../../slackbuilds/dillo/hg/dillo/dw/hyphenator.cc...
> [../../slackbuilds/dillo/hg/dillo/dw/hyphenator.cc:570]: (warning) %u in format
> string (no. 1) requires 'unsigned int *' but the argument type is 'int *'.
> Checking ../../slackbuilds/dillo/hg/dillo/dw/hyphenator.cc...
> [../../slackbuilds/dillo/hg/dillo/dw/hyphenator.cc:570]: (warning) %u in format
> string (no. 2) requires 'unsigned int *' but the argument type is 'int *'.

  It may be a trivial s/%u/%d/, but after reading it a bit I'd prefer
Sebastian to double check it.

  Not committed.

> 
> Checking ../../slackbuilds/dillo/hg/dillo/dw/iterator.cc...
> [../../slackbuilds/dillo/hg/dillo/dw/iterator.cc:124]: (error) Memory leak: eit3

  Done.

  AFAICS, this is a false positive.
  Patched to please cppcheck anyway.

> 
> Checking ../../slackbuilds/dillo/hg/dillo/dw/ooffloatsmgr.cc...
> [../../slackbuilds/dillo/hg/dillo/dw/ooffloatsmgr.cc:654]: (error) Possible null pointer dereference: vloat

  Well, the code should never reach there.
  Not changed.

  @Sebastian, BTW, coincidentally I'm using something like:

     SortedFloatsVector *list;
     list = isSubRefLeftFloat(ref) ? leftFloats : rightFloats;
     Float *vloat = list->get (getFloatIndexFromSubRef (ref));

in some patches I have, which also silence cppcheck. But maybe the
original construct was meant for adding more options (like absolute
positioned floats), but those may end in a third floats array, so I'm
not sure. Is it safe to use the above construct, or should I leave it
as is?


> Checking ../../slackbuilds/dillo/hg/dillo/lout/container.cc...
> [../../slackbuilds/dillo/hg/dillo/lout/container.cc:143]: (error) Common realloc mistake: 'array' nulled but not freed upon failure
> [../../slackbuilds/dillo/hg/dillo/lout/container.cc:177]: (error) Common realloc mistake: 'array' nulled but not freed upon failure

  Done.

> Checking ../../slackbuilds/dillo/hg/dillo/lout/misc.cc...
> [../../slackbuilds/dillo/hg/dillo/lout/misc.cc:172]: (error) Common realloc mistake: 'bits' nulled but not freed upon failure

  Done.

> Truck loads of:
> Checking ../../slackbuilds/dillo/hg/dillo/src/md5.c: ARCH_IS_BIG_ENDIAN...
> [../../slackbuilds/dillo/hg/dillo/src/md5.c:216]: (error) Uninitialized variable: X
> in md5.c

  Untouched: I'm not md5 savvy. Maybe corvid.

-- 
  Cheers
  Jorge.-
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.