[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gluster-devel] Re: Possible leaks and so on
From: |
Steve |
Subject: |
Re: [Gluster-devel] Re: Possible leaks and so on |
Date: |
Tue, 23 Mar 2010 02:41:34 +0100 |
-------- Original-Nachricht --------
> Datum: Mon, 22 Mar 2010 23:55:40 +0000 (UTC)
> Von: Csaba Henk <address@hidden>
> An: address@hidden
> Betreff: [Gluster-devel] Re: Possible leaks and so on
> Hi Patrick,
>
> On 2010-03-22, Vijay Bellur <address@hidden> wrote:
> > Some of the issues reported are valid and they will be addressed through
> > this bug:
> >
> > http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=748
>
> We have already run cppchek on the source:
>
> http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=420
>
> However, it didn't cough up those code points you mention -- see eg.:
>
> $ cppcheck --force build/libglusterfs/src/y.tab.c
> Checking build/libglusterfs/src/y.tab.c...
> Checking build/libglusterfs/src/y.tab.c: YYENABLE_NLS...
> Checking build/libglusterfs/src/y.tab.c: YYENABLE_NLS;ENABLE_NLS...
> Checking build/libglusterfs/src/y.tab.c: YYLEX_PARAM...
> Checking build/libglusterfs/src/y.tab.c: YYLLOC_DEFAULT...
> Checking build/libglusterfs/src/y.tab.c: YYLTYPE_IS_TRIVIAL...
> Checking build/libglusterfs/src/y.tab.c: YYPARSE_PARAM...
> Checking build/libglusterfs/src/y.tab.c: YYPRINT...
> Checking build/libglusterfs/src/y.tab.c: YYSTACK_RELOCATE...
> Checking build/libglusterfs/src/y.tab.c: YYTYPE_INT16...
> Checking build/libglusterfs/src/y.tab.c: YYTYPE_INT8...
> Checking build/libglusterfs/src/y.tab.c: YYTYPE_UINT16...
> Checking build/libglusterfs/src/y.tab.c: YYTYPE_UINT8...
> Checking build/libglusterfs/src/y.tab.c: YY_...
> Checking build/libglusterfs/src/y.tab.c: YY_LOCATION_PRINT...
> Checking build/libglusterfs/src/y.tab.c:
> _GNU_SOURCE;_STRING_H;__GLIBC__...
> Checking build/libglusterfs/src/y.tab.c: _STRING_H;__GLIBC__...
> Checking build/libglusterfs/src/y.tab.c: __SIZE_TYPE__...
> Checking build/libglusterfs/src/y.tab.c: lint...
> Checking build/libglusterfs/src/y.tab.c: short...
> Checking build/libglusterfs/src/y.tab.c: size_t...
> Checking build/libglusterfs/src/y.tab.c: yyoverflow...
> Checking build/libglusterfs/src/y.tab.c: yytnamerr...
>
> So, besides saying thanks for pointing these out, may I ask what did you
> do differently?
>
> Ehhhrm, to prevent you in telling me "RTFM", I looked at the options so
> this time I also tried with
>
> $ cppcheck -a --force build/libglusterfs/src/y.tab.c
>
> still I get only this one:
>
> ./libglusterfs/src/y.tab.c:1743]: (error) Memory leak: node
>
> but not this one:
>
> [./libglusterfs/src/y.tab.c:2067]: (error) Memory leak: cmd
>
> I'm confused.
>
You are probably using an old version of cpp-check. Using 1.4.2 gives following
result when checking against libglusterfs/src/y.tab.c:
-----------------------------
theia glusterfs-3.0.3 # cppcheck --enable=all --force --quiet
--unused-functions ./libglusterfs/src/y.tab.c
[./libglusterfs/src/y.tab.c:2049]: (style) Variable 'backtick_column' is
assigned a value that is never used
[./libglusterfs/src/y.tab.c:2049]: (style) Variable 'backtick_line' is assigned
a value that is never used
[./libglusterfs/src/y.tab.c:1743]: (possible error) Memory leak: node
[./libglusterfs/src/y.tab.c:2067]: (possible error) Memory leak: cmd
[./libglusterfs/src/y.tab.c:183] -> [./libglusterfs/src/y.tab.c:180]: (style)
Typedef 'yytype_int8' hides typedef with same name
[./libglusterfs/src/y.tab.c:1]: (style) The function 'yywrap' is never used
theia glusterfs-3.0.3 #
-----------------------------
Checking the whole 3.0.3 tree results in:
-----------------------------
theia glusterfs-3.0.3 # cppcheck --enable=all --force --quiet
--unused-functions .
[./booster/src/booster-fd.c:243]: (style) The scope of the variable error can
be reduced
[./booster/src/booster.c:398]: (style) The scope of the variable mode can be
reduced
[./booster/src/booster.c:401]: (style) The scope of the variable ap can be
reduced
[./booster/src/booster.c:541]: (style) The scope of the variable mode can be
reduced
[./booster/src/booster.c:542]: (style) The scope of the variable ap can be
reduced
[./booster/src/booster.c:562]: (style) The scope of the variable mode can be
reduced
[./booster/src/booster.c:563]: (style) The scope of the variable ap can be
reduced
[./booster/src/booster.c:997]: (style) The scope of the variable ret can be
reduced
[./booster/src/booster.c:217]: (style) struct or union member
'booster_mount::st_dev' is never used
[./booster/src/booster.c:218]: (style) struct or union member
'booster_mount::handle' is never used
[./booster/src/booster.c:219]: (style) struct or union member
'booster_mount::device_list' is never used
[./booster/src/booster.c:376]: (style) Redundant condition. It is safe to
deallocate a NULL pointer
[./booster/src/booster.c:384]: (style) Redundant condition. It is safe to
deallocate a NULL pointer
[./booster/src/booster_fstab.c:324]: (style) Redundant condition. It is safe to
deallocate a NULL pointer
[./booster/src/booster_fstab.c:327]: (style) Redundant condition. It is safe to
deallocate a NULL pointer
[./booster/src/booster_fstab.c:330]: (style) Redundant condition. It is safe to
deallocate a NULL pointer
[./booster/src/booster_fstab.c:333]: (style) Redundant condition. It is safe to
deallocate a NULL pointer
[./contrib/fuse-lib/mount.c:594]: (style) The scope of the variable rv can be
reduced
[./glusterfsd/src/glusterfsd.c:175]: (style) The scope of the variable ret can
be reduced
[./glusterfsd/src/glusterfsd.c:1043]: (style) The scope of the variable port
can be reduced
[./libglusterfs/src/common-utils.c:296]: (style) Variable 'ret' is assigned a
value that is never used
[./libglusterfs/src/common-utils.c:394]: (style) Variable 'ret' is assigned a
value that is never used
[./libglusterfs/src/common-utils.c:596]: (style) Redundant condition. It is
safe to deallocate a NULL pointer
[./libglusterfs/src/compat.c:133]: (style) Variable 'ret' is assigned a value
that is never used
[./libglusterfs/src/compat.c:193]: (style) Variable 'ret' is assigned a value
that is never used
[./libglusterfs/src/compat.c:135]: (style) The scope of the variable ret can be
reduced
[./libglusterfs/src/compat.c:195]: (style) The scope of the variable ret can be
reduced
[./libglusterfs/src/compat.c:223]: (style) The scope of the variable newfd can
be reduced
[./libglusterfs/src/compat.c:277]: (style) The scope of the variable newfd can
be reduced
[./libglusterfs/src/dict.c:216]: (style) The scope of the variable ret can be
reduced
[./libglusterfs/src/dict.c:2480]: (style) The scope of the variable len can be
reduced
[./libglusterfs/src/dict.c:83]: (error) Memory leak: dict
[./libglusterfs/src/dict.c:179]: (error) Memory leak: newdata
[./libglusterfs/src/dict.c:251]: (possible error) Memory leak: pair
[./libglusterfs/src/event.c:385]: (style) The scope of the variable i can be
reduced
[./libglusterfs/src/event.c:394]: (style) Redundant condition. It is safe to
deallocate a NULL pointer
[./libglusterfs/src/event.c:523]: (style) The scope of the variable idx can be
reduced
[./libglusterfs/src/event.c:618]: (style) The scope of the variable idx can be
reduced
[./libglusterfs/src/event.c:623]: (style) The scope of the variable lastidx can
be reduced
[./libglusterfs/src/event.c:694]: (style) The scope of the variable idx can be
reduced
[./libglusterfs/src/event.c:834]: (style) Redundant condition. It is safe to
deallocate a NULL pointer
[./libglusterfs/src/fd.c:464]: (error) Possible null pointer dereference: fd -
otherwise it is redundant to check if fd is null at line 466
[./libglusterfs/src/fd.c:183]: (style) The scope of the variable i can be
reduced
[./libglusterfs/src/fd.c:216]: (style) The scope of the variable error can be
reduced
[./libglusterfs/src/fd.c:217]: (style) The scope of the variable alloc_attempts
can be reduced
[./libglusterfs/src/globals.c:99]: (style) The scope of the variable ret can be
reduced
[./libglusterfs/src/inode.c:901]: (style) The scope of the variable i can be
reduced
[./libglusterfs/src/inode.c:901]: (style) The scope of the variable size can be
reduced
[./libglusterfs/src/inode.c:903]: (style) The scope of the variable len can be
reduced
[./libglusterfs/src/inode.c:1267]: (style) The scope of the variable index can
be reduced
[./libglusterfs/src/inode.c:1155]: (style) Redundant condition. It is safe to
deallocate a NULL pointer
[./libglusterfs/src/iobuf.c:576]: (style) The scope of the variable i can be
reduced
[./libglusterfs/src/iobuf.c:624]: (style) The scope of the variable i can be
reduced
[./libglusterfs/src/logging.c:427]: (style) The scope of the variable ap can be
reduced
[./libglusterfs/src/logging.c:435]: (style) The scope of the variable len can
be reduced
[./libglusterfs/src/spec.lex.c:390]: (style) struct or union member
'yy_trans_info::yy_verify' is never used
[./libglusterfs/src/spec.lex.c:391]: (style) struct or union member
'yy_trans_info::yy_nxt' is never used
[./libglusterfs/src/spec.lex.c:869]: (style) Unreachable code below a 'return'
[./libglusterfs/src/spec.lex.c:874]: (style) Unreachable code below a 'return'
[./libglusterfs/src/spec.lex.c:879]: (style) Unreachable code below a 'return'
[./libglusterfs/src/spec.lex.c:884]: (style) Unreachable code below a 'return'
[./libglusterfs/src/spec.lex.c:889]: (style) Unreachable code below a 'return'
[./libglusterfs/src/statedump.c:75]: (style) Variable 'ret' is assigned a value
that is never used
[./libglusterfs/src/statedump.c:96]: (style) Variable 'ret' is assigned a value
that is never used
[./libglusterfs/src/y.tab.c:2049]: (style) Variable 'backtick_column' is
assigned a value that is never used
[./libglusterfs/src/y.tab.c:2049]: (style) Variable 'backtick_line' is assigned
a value that is never used
[./libglusterfs/src/y.tab.c:1743]: (possible error) Memory leak: node
[./libglusterfs/src/y.tab.c:2067]: (possible error) Memory leak: cmd
[./libglusterfs/src/y.tab.c:183] -> [./libglusterfs/src/y.tab.c:180]: (style)
Typedef 'yytype_int8' hides typedef with same name
[./libglusterfsclient/src/libglusterfsclient-dentry.c:409]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./libglusterfsclient/src/libglusterfsclient.c:520]: (style) The scope of the
variable current can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:606]: (style) The scope of the
variable current can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:607]: (style) The scope of the
variable prev can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:610]: (style) The scope of the
variable timeout can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:2122]: (style) The scope of the
variable ret can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:2390]: (style) The scope of the
variable ret can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:2606]: (style) The scope of the
variable copy_len can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:2951]: (style) The scope of the
variable mode can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:2952]: (style) The scope of the
variable ap can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:3084]: (style) The scope of the
variable ap can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:3087]: (style) The scope of the
variable mode can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:3796]: (style) The scope of the
variable src can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:3797]: (style) The scope of the
variable dst_count can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:3798]: (style) The scope of the
variable len can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:3798]: (style) The scope of the
variable src_len can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:3798]: (style) The scope of the
variable dst_len can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:3799]: (style) The scope of the
variable src_offset can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:7087]: (style) The scope of the
variable cpy_size can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:7578]: (style) The scope of the
variable bytes can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:7801]: (style) The scope of the
variable resulting_cwd_len can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:7944]: (style) The scope of the
variable len can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:7948]: (style) The scope of the
variable op_ret can be reduced
[./libglusterfsclient/src/libglusterfsclient.c:1843]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./libglusterfsclient/src/libglusterfsclient.c:6791]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./scheduler/nufa/src/nufa.c:211]: (style) The scope of the variable percent
can be reduced
[./scheduler/random/src/random.c:132]: (style) The scope of the variable
percent can be reduced
[./scheduler/rr/src/rr.c:50]: (style) The scope of the variable i can be reduced
[./scheduler/rr/src/rr.c:291]: (style) The scope of the variable i can be
reduced
[./transport/ib-verbs/src/ib-verbs.c:257]: (style) The scope of the variable
len can be reduced
[./transport/ib-verbs/src/ib-verbs.c:383]: (style) The scope of the variable
need_append can be reduced
[./transport/ib-verbs/src/ib-verbs.c:855]: (style) The scope of the variable i
can be reduced
[./transport/ib-verbs/src/ib-verbs.c:1557]: (style) The scope of the variable i
can be reduced
[./transport/ib-verbs/src/ib-verbs.c:1935]: (style) The scope of the variable
ret can be reduced
[./transport/socket/src/socket.c:740]: (style) The scope of the variable ret
can be reduced
[./transport/socket/src/socket.c:850]: (style) The scope of the variable
new_sock can be reduced
[./transport/socket/src/socket.c:1312]: (style) The scope of the variable
need_poll_out can be reduced
[./transport/socket/src/socket.c:1313]: (style) The scope of the variable
need_append can be reduced
[./transport/socket/src/socket.c:275]: (style) Redundant condition. It is safe
to deallocate a NULL pointer
[./xlators/cluster/afr/src/afr-dir-read.c:219]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/cluster/afr/src/afr.h:706]: (style) The scope of the variable i can
be reduced
[./xlators/cluster/afr/src/afr-dir-read.c:110]: (style) The scope of the
variable call_count can be reduced
[./xlators/cluster/afr/src/afr-dir-read.c:223]: (style) The scope of the
variable ret can be reduced
[./xlators/cluster/afr/src/afr-dir-read.c:729]: (style) The scope of the
variable last_tried can be reduced
[./xlators/cluster/afr/src/afr-dir-read.c:730]: (style) The scope of the
variable this_try can be reduced
[./xlators/cluster/afr/src/afr-dir-write.c:1619]: (style) Variable
'need_unwind' is assigned a value that is never used
[./xlators/cluster/afr/src/afr-dir-write.c:1619]: (style) Variable 'read_child'
is assigned a value that is never used
[./xlators/cluster/afr/src/afr-dir-write.c:1834]: (style) Variable
'need_unwind' is assigned a value that is never used
[./xlators/cluster/afr/src/afr-dir-write.c:133]: (style) The scope of the
variable ret can be reduced
[./xlators/cluster/afr/src/afr-dir-write.c:1625]: (style) The scope of the
variable need_unwind can be reduced
[./xlators/cluster/afr/src/afr-dir-write.c:1840]: (style) The scope of the
variable need_unwind can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:71]: (style) The scope of the
variable last_tried can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:72]: (style) The scope of the
variable this_try can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:189]: (style) The scope of the
variable last_tried can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:190]: (style) The scope of the
variable this_try can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:313]: (style) The scope of the
variable last_tried can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:314]: (style) The scope of the
variable this_try can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:438]: (style) The scope of the
variable last_tried can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:439]: (style) The scope of the
variable this_try can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:615]: (style) The scope of the
variable last_tried can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:616]: (style) The scope of the
variable this_try can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:759]: (style) The scope of the
variable last_tried can be reduced
[./xlators/cluster/afr/src/afr-inode-read.c:760]: (style) The scope of the
variable this_try can be reduced
[./xlators/cluster/afr/src/afr-inode-write.c:88]: (style) Variable
'need_unwind' is assigned a value that is never used
[./xlators/cluster/afr/src/afr-inode-write.c:94]: (style) The scope of the
variable need_unwind can be reduced
[./xlators/cluster/afr/src/afr-inode-write.c:707]: (style) The scope of the
variable op_errno can be reduced
[./xlators/cluster/afr/src/afr-open.c:444]: (style) Variable 'op_ret' is
assigned a value that is never used
[./xlators/cluster/afr/src/afr-open.c:85]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/afr/src/afr-open.c:225]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/afr/src/afr-open.c:406]: (style) The scope of the variable
_ret can be reduced
[./xlators/cluster/afr/src/afr-open.c:407]: (style) The scope of the variable i
can be reduced
[./xlators/cluster/afr/src/afr-self-heal-algorithm.c:258]: (style) The scope of
the variable op_errno can be reduced
[./xlators/cluster/afr/src/afr-self-heal-algorithm.c:743]: (style) The scope of
the variable i can be reduced
[./xlators/cluster/afr/src/afr-self-heal-algorithm.c:744]: (style) The scope of
the variable write_needed can be reduced
[./xlators/cluster/afr/src/afr-self-heal-common.c:553]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/cluster/afr/src/afr-self-heal-common.c:595]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/cluster/afr/src/afr-self-heal-common.c:1301]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/cluster/afr/src/afr-self-heal-common.c:559]: (style) The scope of
the variable ret can be reduced
[./xlators/cluster/afr/src/afr-self-heal-common.c:600]: (style) The scope of
the variable ret can be reduced
[./xlators/cluster/afr/src/afr-self-heal-data.c:757]: (style) Variable
'nsources' is assigned a value that is never used
[./xlators/cluster/afr/src/afr-self-heal-data.c:904]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/cluster/afr/src/afr-self-heal-entry.c:915]: (style) Variable
'op_errno' is assigned a value that is never used
[./xlators/cluster/afr/src/afr-self-heal-entry.c:1287]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/cluster/afr/src/afr-self-heal-entry.c:1908]: (style) Variable
'op_errno' is assigned a value that is never used
[./xlators/cluster/afr/src/afr-self-heal-entry.c:2396]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/cluster/afr/src/afr-self-heal-entry.c:925]: (style) The scope of the
variable op_errno can be reduced
[./xlators/cluster/afr/src/afr-self-heal-entry.c:781]: (style) Unreachable code
below a 'return'
[./xlators/cluster/afr/src/afr-self-heal-entry.c:1785]: (style) Unreachable
code below a 'return'
[./xlators/cluster/afr/src/afr-self-heal-metadata.c:658]: (style) Variable
'ret' is assigned a value that is never used
[./xlators/cluster/afr/src/afr-self-heal-metadata.c:439]: (style) The scope of
the variable i can be reduced
[./xlators/cluster/afr/src/afr-transaction.c:1081]: (style) Variable 'done' is
assigned a value that is never used
[./xlators/cluster/afr/src/afr-transaction.c:198]: (style) The scope of the
variable _ret can be reduced
[./xlators/cluster/afr/src/afr-transaction.c:199]: (style) The scope of the
variable i can be reduced
[./xlators/cluster/afr/src/afr-transaction.c:240]: (style) The scope of the
variable _ret can be reduced
[./xlators/cluster/afr/src/afr-transaction.c:270]: (style) The scope of the
variable i can be reduced
[./xlators/cluster/afr/src/afr-transaction.c:273]: (style) The scope of the
variable _ret can be reduced
[./xlators/cluster/afr/src/afr-transaction.c:1084]: (style) The scope of the
variable done can be reduced
[./xlators/cluster/afr/src/afr.c:1065]: (style) Variable 'op_ret' is assigned a
value that is never used
[./xlators/cluster/afr/src/afr.c:2406]: (style) Variable 'call_count' is
assigned a value that is never used
[./xlators/cluster/afr/src/afr.c:2690]: (style) Variable 'op_errno' is assigned
a value that is never used
[./xlators/cluster/afr/src/afr.c:66]: (style) The scope of the variable ret can
be reduced
[./xlators/cluster/afr/src/afr.c:94]: (style) The scope of the variable ret can
be reduced
[./xlators/cluster/afr/src/afr.c:120]: (style) The scope of the variable ret
can be reduced
[./xlators/cluster/afr/src/afr.c:148]: (style) The scope of the variable ret
can be reduced
[./xlators/cluster/afr/src/afr.c:174]: (style) The scope of the variable ret
can be reduced
[./xlators/cluster/afr/src/afr.c:202]: (style) The scope of the variable ret
can be reduced
[./xlators/cluster/afr/src/afr.c:322]: (style) The scope of the variable i can
be reduced
[./xlators/cluster/afr/src/afr.c:590]: (style) The scope of the variable source
can be reduced
[./xlators/cluster/afr/src/afr.c:716]: (style) The scope of the variable
first_up_child can be reduced
[./xlators/cluster/afr/src/afr.c:836]: (style) The scope of the variable
first_up_child can be reduced
[./xlators/cluster/afr/src/afr.c:1068]: (style) The scope of the variable
op_ret can be reduced
[./xlators/cluster/afr/src/afr.c:1301]: (style) The scope of the variable i can
be reduced
[./xlators/cluster/afr/src/afr.c:1304]: (style) The scope of the variable _ret
can be reduced
[./xlators/cluster/afr/src/afr.c:1349]: (style) The scope of the variable i can
be reduced
[./xlators/cluster/dht/src/dht-common.c:2999]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/cluster/dht/src/dht-common.c:3051]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/cluster/dht/src/dht-common.c:91]: (style) The scope of the variable
is_dir can be reduced
[./xlators/cluster/dht/src/dht-common.c:209]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/dht/src/dht-common.c:210]: (style) The scope of the variable
is_dir can be reduced
[./xlators/cluster/dht/src/dht-common.c:211]: (style) The scope of the variable
is_linkfile can be reduced
[./xlators/cluster/dht/src/dht-common.c:377]: (style) The scope of the variable
is_dir can be reduced
[./xlators/cluster/dht/src/dht-common.c:383]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/dht/src/dht-common.c:3002]: (style) The scope of the
variable ret can be reduced
[./xlators/cluster/dht/src/dht-common.c:3476]: (style) The scope of the
variable ret can be reduced
[./xlators/cluster/dht/src/dht-diskusage.c:44]: (style) The scope of the
variable i can be reduced
[./xlators/cluster/dht/src/dht-diskusage.c:130]: (style) The scope of the
variable i can be reduced
[./xlators/cluster/dht/src/dht-diskusage.c:228]: (style) The scope of the
variable i can be reduced
[./xlators/cluster/dht/src/dht-hashfn.c:78]: (style) The scope of the variable
namelen can be reduced
[./xlators/cluster/dht/src/dht-helper.c:193]: (style) The scope of the variable
i can be reduced
[./xlators/cluster/dht/src/dht-layout.c:71]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/dht/src/dht-selfheal.c:151]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/cluster/dht/src/dht-selfheal.c:521]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/cluster/dht/src/dht-selfheal.c:155]: (style) The scope of the
variable ret can be reduced
[./xlators/cluster/dht/src/dht-selfheal.c:206]: (style) The scope of the
variable i can be reduced
[./xlators/cluster/dht/src/dht.c:207]: (style) The scope of the variable i can
be reduced
[./xlators/cluster/dht/src/dht.c:241]: (style) The scope of the variable i can
be reduced
[./xlators/cluster/dht/src/nufa.c:504]: (style) The scope of the variable i can
be reduced
[./xlators/cluster/dht/src/nufa.c:541]: (style) The scope of the variable i can
be reduced
[./xlators/cluster/dht/src/switch.c:610]: (style) The scope of the variable i
can be reduced
[./xlators/cluster/dht/src/switch.c:869]: (style) The scope of the variable i
can be reduced
[./xlators/cluster/dht/src/switch.c:858]: (error) Memory leak: dup_str
[./xlators/cluster/ha/src/ha-helpers.c:33]: (style) The scope of the variable i
can be reduced
[./xlators/cluster/ha/src/ha-helpers.c:102]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/ha/src/ha-helpers.c:161]: (style) The scope of the variable
i can be reduced
[./xlators/cluster/ha/src/ha.c:1942]: (style) Variable 'ret' is assigned a
value that is never used
[./xlators/cluster/ha/src/ha.c:1776]: (style) The scope of the variable i can
be reduced
[./xlators/cluster/ha/src/ha.c:3098]: (style) The scope of the variable cnt can
be reduced
[./xlators/cluster/ha/src/ha.c:3098]: (style) The scope of the variable j can
be reduced
[./xlators/cluster/ha/src/ha.c:3244]: (style) The scope of the variable cnt can
be reduced
[./xlators/cluster/ha/src/ha.c:3591]: (style) The scope of the variable i can
be reduced
[./xlators/cluster/ha/src/ha.c:3690]: (style) The scope of the variable i can
be reduced
[./xlators/cluster/stripe/src/stripe.c:1462]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/cluster/stripe/src/stripe.c:1865]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/cluster/stripe/src/stripe.c:1463]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/stripe/src/stripe.c:1944]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/stripe/src/stripe.c:2125]: (style) The scope of the variable
index can be reduced
[./xlators/cluster/unify/src/unify-self-heal.c:428]: (style) The scope of the
variable index can be reduced
[./xlators/cluster/unify/src/unify-self-heal.c:942]: (style) The scope of the
variable index can be reduced
[./xlators/cluster/unify/src/unify-self-heal.c:1149]: (style) The scope of the
variable index can be reduced
[./xlators/cluster/unify/src/unify.c:120]: (style) Variable 'ret' is assigned a
value that is never used
[./xlators/cluster/unify/src/unify.c:1370]: (style) Variable 'ret' is assigned
a value that is never used
[./xlators/cluster/unify/src/unify.c:1569]: (style) Variable 'ret' is assigned
a value that is never used
[./xlators/cluster/unify/src/unify.c:124]: (style) The scope of the variable
index can be reduced
[./xlators/cluster/unify/src/unify.c:126]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/unify/src/unify.c:707]: (style) The scope of the variable
index can be reduced
[./xlators/cluster/unify/src/unify.c:1371]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/unify/src/unify.c:1570]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/unify/src/unify.c:1879]: (style) The scope of the variable
index can be reduced
[./xlators/cluster/unify/src/unify.c:1880]: (style) The scope of the variable
callcnt can be reduced
[./xlators/cluster/unify/src/unify.c:2043]: (style) The scope of the variable
index can be reduced
[./xlators/cluster/unify/src/unify.c:2044]: (style) The scope of the variable
callcnt can be reduced
[./xlators/cluster/unify/src/unify.c:3536]: (style) The scope of the variable
index can be reduced
[./xlators/cluster/unify/src/unify.c:3610]: (style) The scope of the variable
idx can be reduced
[./xlators/cluster/unify/src/unify.c:4282]: (style) The scope of the variable
ret can be reduced
[./xlators/cluster/unify/src/unify.c:4283]: (style) The scope of the variable
count can be reduced
[./xlators/debug/error-gen/src/error-gen.c:354]: (style) The scope of the
variable rand_no can be reduced
[./xlators/debug/io-stats/src/io-stats.c:436]: (style) The scope of the
variable len can be reduced
[./xlators/debug/io-stats/src/io-stats.c:77]: (style) struct or union member
'ios_local::wind_at' is never used
[./xlators/debug/io-stats/src/io-stats.c:78]: (style) struct or union member
'ios_local::unwind_at' is never used
[./xlators/debug/trace/src/trace.c:51]: (style) struct or union member
'trace_private::debug_flag' is never used
[./xlators/features/filter/src/filter.c:208]: (style) The scope of the variable
ret can be reduced
[./xlators/features/filter/src/filter.c:501]: (style) The scope of the variable
ret can be reduced
[./xlators/features/filter/src/filter.c:567]: (style) The scope of the variable
ret can be reduced
[./xlators/features/filter/src/filter.c:743]: (style) The scope of the variable
ret can be reduced
[./xlators/features/filter/src/filter.c:882]: (style) The scope of the variable
ret can be reduced
[./xlators/features/filter/src/filter.c:936]: (style) The scope of the variable
ret can be reduced
[./xlators/features/locks/src/common.c:141]: (style) The scope of the variable
ret can be reduced
[./xlators/features/locks/src/common.c:383]: (style) The scope of the variable
is_empty can be reduced
[./xlators/features/path-convertor/src/path.c:59]: (style) The scope of the
variable i can be reduced
[./xlators/features/path-convertor/src/path.c:59]: (style) The scope of the
variable j can be reduced
[./xlators/features/path-convertor/src/path.c:104]: (style) The scope of the
variable i can be reduced
[./xlators/features/path-convertor/src/path.c:104]: (style) The scope of the
variable j can be reduced
[./xlators/features/path-convertor/src/path.c:41]: (style) struct or union
member 'path_private::this_len' is never used
[./xlators/features/path-convertor/src/path.c:44]: (style) struct or union
member 'path_private::this' is never used
[./xlators/features/quota/src/quota.c:557]: (style) Variable 'ret' is assigned
a value that is never used
[./xlators/features/quota/src/quota.c:615]: (style) Variable 'ret' is assigned
a value that is never used
[./xlators/features/quota/src/quota.c:165]: (style) The scope of the variable
space_freed can be reduced
[./xlators/features/quota/src/quota.c:196]: (style) The scope of the variable
space_freed can be reduced
[./xlators/features/quota/src/quota.c:231]: (style) The scope of the variable
space_used can be reduced
[./xlators/features/quota/src/quota.c:289]: (style) The scope of the variable
space_used can be reduced
[./xlators/features/quota/src/quota.c:348]: (style) The scope of the variable
space_freed can be reduced
[./xlators/features/quota/src/quota.c:426]: (style) The scope of the variable
space_freed can be reduced
[./xlators/features/quota/src/quota.c:501]: (style) The scope of the variable
space_used can be reduced
[./xlators/features/quota/src/quota.c:559]: (style) The scope of the variable
ret can be reduced
[./xlators/features/quota/src/quota.c:561]: (style) The scope of the variable
space_used can be reduced
[./xlators/features/quota/src/quota.c:616]: (style) The scope of the variable
ret can be reduced
[./xlators/features/quota/src/quota.c:670]: (style) The scope of the variable
iovlen can be reduced
[./xlators/features/quota/src/quota.c:708]: (style) The scope of the variable i
can be reduced
[./xlators/features/quota/src/quota.c:41]: (style) struct or union member
'quota_local::inode' is never used
[./xlators/features/trash/src/trash.c:395]: (style) The scope of the variable
count can be reduced
[./xlators/features/trash/src/trash.c:1413]: (style) The scope of the variable
ret can be reduced
[./xlators/mount/fuse/src/fuse-bridge.c:2485]: (style) The scope of the
variable fd can be reduced
[./xlators/mount/fuse/src/fuse-bridge.c:2487]: (style) The scope of the
variable len can be reduced
[./xlators/performance/io-cache/src/io-cache.c:184]: (style) The scope of the
variable cache_still_valid can be reduced
[./xlators/performance/io-cache/src/io-cache.c:461]: (style) The scope of the
variable weight can be reduced
[./xlators/performance/io-cache/src/io-cache.c:553]: (style) The scope of the
variable weight can be reduced
[./xlators/performance/io-cache/src/io-cache.c:1297]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/performance/io-cache/src/io-cache.c:1301]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/performance/io-cache/src/page.c:333]: (style) Variable
'payload_size' is assigned a value that is never used
[./xlators/performance/io-cache/src/page.c:555]: (style) The scope of the
variable src_offset can be reduced
[./xlators/performance/io-cache/src/page.c:556]: (style) The scope of the
variable dst_offset can be reduced
[./xlators/performance/io-cache/src/page.c:557]: (style) The scope of the
variable copy_size can be reduced
[./xlators/performance/io-cache/src/page.c:560]: (style) The scope of the
variable found can be reduced
[./xlators/performance/io-threads/src/io-threads.c:266]: (style) The scope of
the variable balstatus can be reduced
[./xlators/performance/io-threads/src/io-threads.c:2295]: (style) The scope of
the variable waitstat can be reduced
[./xlators/performance/io-threads/src/io-threads.c:2410]: (style) The scope of
the variable waitstat can be reduced
[./xlators/performance/quick-read/src/quick-read.c:158]: (style) The scope of
the variable ret can be reduced
[./xlators/performance/quick-read/src/quick-read.c:256]: (style) The scope of
the variable requested_size can be reduced
[./xlators/performance/quick-read/src/quick-read.c:256]: (style) The scope of
the variable size can be reduced
[./xlators/performance/quick-read/src/quick-read.c:756]: (style) The scope of
the variable flags can be reduced
[./xlators/performance/quick-read/src/quick-read.c:756]: (style) The scope of
the variable i can be reduced
[./xlators/performance/quick-read/src/quick-read.c:758]: (style) The scope of
the variable need_open can be reduced
[./xlators/performance/quick-read/src/quick-read.c:758]: (style) The scope of
the variable can_wind can be reduced
[./xlators/performance/quick-read/src/quick-read.c:770]: (style) The scope of
the variable start can be reduced
[./xlators/performance/quick-read/src/quick-read.c:770]: (style) The scope of
the variable end can be reduced
[./xlators/performance/quick-read/src/quick-read.c:771]: (style) The scope of
the variable len can be reduced
[./xlators/performance/read-ahead/src/page.c:135]: (style) Variable
'payload_size' is assigned a value that is never used
[./xlators/performance/read-ahead/src/page.c:135]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/performance/read-ahead/src/page.c:340]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/performance/read-ahead/src/page.c:269]: (style) The scope of the
variable src_offset can be reduced
[./xlators/performance/read-ahead/src/page.c:270]: (style) The scope of the
variable dst_offset can be reduced
[./xlators/performance/read-ahead/src/page.c:271]: (style) The scope of the
variable copy_size can be reduced
[./xlators/performance/read-ahead/src/read-ahead.c:48]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/performance/read-ahead/src/read-ahead.c:127]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/performance/read-ahead/src/read-ahead.c:440]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/performance/read-ahead/src/read-ahead.c:555]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/performance/read-ahead/src/read-ahead.c:586]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/performance/read-ahead/src/read-ahead.c:621]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/performance/read-ahead/src/read-ahead.c:643]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/performance/read-ahead/src/read-ahead.c:700]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/performance/read-ahead/src/read-ahead.c:733]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/performance/read-ahead/src/read-ahead.c:766]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/performance/read-ahead/src/read-ahead.c:704]: (style) The scope of
the variable ret can be reduced
[./xlators/performance/read-ahead/src/read-ahead.c:737]: (style) The scope of
the variable ret can be reduced
[./xlators/performance/read-ahead/src/read-ahead.c:770]: (style) The scope of
the variable ret can be reduced
[./xlators/performance/stat-prefetch/src/stat-prefetch.c:738]: (style) Variable
'ret' is assigned a value that is never used
[./xlators/performance/stat-prefetch/src/stat-prefetch.c:153]: (style) The
scope of the variable ret can be reduced
[./xlators/performance/stat-prefetch/src/stat-prefetch.c:589]: (style) The
scope of the variable ret can be reduced
[./xlators/performance/stat-prefetch/src/stat-prefetch.c:693]: (style) The
scope of the variable expected_offset can be reduced
[./xlators/performance/symlink-cache/src/symlink-cache.c:97]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:210]: (style) The scope
of the variable count can be reduced
[./xlators/performance/write-behind/src/write-behind.c:531]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:600]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:674]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:715]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:789]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:862]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:938]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:981]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:1057]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:1132]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:1305]: (style) The scope
of the variable flags can be reduced
[./xlators/performance/write-behind/src/write-behind.c:1781]: (style) The scope
of the variable count can be reduced
[./xlators/performance/write-behind/src/write-behind.c:1972]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:2016]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:2096]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:2097]: (style) The scope
of the variable disabled can be reduced
[./xlators/performance/write-behind/src/write-behind.c:2098]: (style) The scope
of the variable disable_till can be reduced
[./xlators/performance/write-behind/src/write-behind.c:2168]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:2289]: (style) The scope
of the variable ret can be reduced
[./xlators/performance/write-behind/src/write-behind.c:2345]: (style) The scope
of the variable ret can be reduced
[./xlators/protocol/client/src/client-protocol.c:3434]: (error) Possible null
pointer dereference: iobuf - otherwise it is redundant to check if iobuf is
null at line 3505
[./xlators/protocol/client/src/client-protocol.c:1474]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/protocol/client/src/client-protocol.c:1674]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/protocol/client/src/client-protocol.c:2392]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/protocol/client/src/client-protocol.c:2460]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/protocol/client/src/client-protocol.c:2527]: (style) Variable 'ret'
is assigned a value that is never used
[./xlators/protocol/client/src/client-protocol.c:360]: (style) The scope of the
variable transport_activity can be reduced
[./xlators/protocol/client/src/client-protocol.c:436]: (style) The scope of the
variable frame_count can be reduced
[./xlators/protocol/client/src/client-protocol.c:589]: (style) The scope of the
variable callid can be reduced
[./xlators/protocol/client/src/client-protocol.c:3818]: (style) The scope of
the variable dict_len can be reduced
[./xlators/protocol/client/src/client-protocol.c:3820]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/client/src/client-protocol.c:3877]: (style) The scope of
the variable dict_len can be reduced
[./xlators/protocol/client/src/client-protocol.c:3879]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/client/src/client-protocol.c:3947]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/client/src/client-protocol.c:4147]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/client/src/client-protocol.c:4205]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/client/src/client-protocol.c:4468]: (style) The scope of
the variable buf_size can be reduced
[./xlators/protocol/client/src/client-protocol.c:4497]: (style) The scope of
the variable buf_size can be reduced
[./xlators/protocol/client/src/client-protocol.c:4676]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/client/src/client-protocol.c:4896]: (style) The scope of
the variable dict_len can be reduced
[./xlators/protocol/client/src/client-protocol.c:4898]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/client/src/client-protocol.c:5271]: (style) The scope of
the variable dict_len can be reduced
[./xlators/protocol/client/src/client-protocol.c:5273]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/client/src/client-protocol.c:737]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:807]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:862]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:918]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:987]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1053]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1109]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1165]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1234]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1314]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1397]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1452]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1525]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1598]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1655]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1723]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1792]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1860]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:1944]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2021]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2112]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2172]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2251]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2310]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2373]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2508]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2576]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2695]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2764]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2830]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:2928]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:3020]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:3127]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:3189]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:3267]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:3859]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:3918]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:4980]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:5318]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:5568]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:5638]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/client/src/client-protocol.c:6783]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/server/src/server-helpers.c:194]: (style) The scope of the
variable i can be reduced
[./xlators/protocol/server/src/server-helpers.c:699]: (style) The scope of the
variable i can be reduced
[./xlators/protocol/server/src/server-helpers.c:633]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/server/src/server-helpers.c:836]: (style) Redundant
condition. It is safe to deallocate a NULL pointer
[./xlators/protocol/server/src/server-protocol.c:324]: (error) Possible null
pointer dereference: state - otherwise it is redundant to check if state is
null at line 344
[./xlators/protocol/server/src/server-protocol.c:4400]: (style) Variable
'vollen' is assigned a value that is never used
[./xlators/protocol/server/src/server-protocol.c:4554]: (style) Variable
'vollen' is assigned a value that is never used
[./xlators/protocol/server/src/server-protocol.c:4611]: (style) Variable
'vollen' is assigned a value that is never used
[./xlators/protocol/server/src/server-protocol.c:4776]: (style) Variable
'newbaselen' is assigned a value that is never used
[./xlators/protocol/server/src/server-protocol.c:4842]: (style) Variable
'newbaselen' is assigned a value that is never used
[./xlators/protocol/server/src/server-protocol.c:5570]: (style) Variable
'op_errno' is assigned a value that is never used
[./xlators/protocol/server/src/server-protocol.c:899]: (style) The scope of the
variable buflen can be reduced
[./xlators/protocol/server/src/server-protocol.c:1212]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/server/src/server-protocol.c:1266]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/server/src/server-protocol.c:2383]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/server/src/server-protocol.c:2491]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/server/src/server-protocol.c:2553]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/server/src/server-protocol.c:2644]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/server/src/server-protocol.c:3429]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/server/src/server-protocol.c:3508]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/server/src/server-protocol.c:3585]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/server/src/server-protocol.c:3663]: (style) The scope of
the variable ret can be reduced
[./xlators/protocol/server/src/server-protocol.c:5573]: (style) The scope of
the variable op_errno can be reduced
[./xlators/protocol/server/src/server-protocol.c:5699]: (style) The scope of
the variable lru_limit can be reduced
[./xlators/protocol/server/src/server-protocol.c:5968]: (style) The scope of
the variable glusterfsd_stats_nr_clients can be reduced
[./xlators/protocol/server/src/server-protocol.c:5301]: (possible error) Memory
leak: conf_dir
[./xlators/protocol/server/src/server-resolve.c:99]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/protocol/server/src/server-resolve.c:138]: (style) Variable 'ret' is
assigned a value that is never used
[./xlators/protocol/server/src/server-resolve.c:104]: (style) The scope of the
variable ret can be reduced
[./xlators/storage/posix/src/posix.c:2321]: (style) Variable 'was_present' is
assigned a value that is never used
[./xlators/storage/posix/src/posix.c:2435]: (style) Variable 'align' is
assigned a value that is never used
[./xlators/storage/posix/src/posix.c:105]: (style) The scope of the variable
xattr_size can be reduced
[./xlators/storage/posix/src/posix.c:108]: (style) The scope of the variable
_fd can be reduced
[./xlators/storage/posix/src/posix.c:110]: (style) The scope of the variable
req_size can be reduced
[./xlators/storage/posix/src/posix.c:1236]: (style) The scope of the variable
tmp_fd can be reduced
[./xlators/storage/posix/src/posix.c:1474]: (style) The scope of the variable
ret can be reduced
[./xlators/storage/posix/src/posix.c:2328]: (style) The scope of the variable
was_present can be reduced
[./xlators/storage/posix/src/posix.c:2446]: (style) The scope of the variable
align can be reduced
[./xlators/storage/posix/src/posix.c:2561]: (style) The scope of the variable
idx can be reduced
[./xlators/storage/posix/src/posix.c:2562]: (style) The scope of the variable
align can be reduced
[./xlators/storage/posix/src/posix.c:2563]: (style) The scope of the variable
max_buf_size can be reduced
[./xlators/storage/posix/src/posix.c:2564]: (style) The scope of the variable
retval can be reduced
[./xlators/storage/posix/src/posix.c:2935]: (style) The scope of the variable
file_fd can be reduced
[./xlators/storage/posix/src/posix.c:2937]: (style) The scope of the variable
ret can be reduced
[./xlators/storage/posix/src/posix.c:3014]: (style) The scope of the variable
sys_ret can be reduced
[./xlators/storage/posix/src/posix.c:4557]: (style) The scope of the variable
avg_read can be reduced
[./xlators/storage/posix/src/posix.c:4558]: (style) The scope of the variable
avg_write can be reduced
[./xlators/storage/posix/src/posix.c:4559]: (style) The scope of the variable
_time_ms can be reduced
[./booster/src/booster_stat.c:1]: (style) The function '__fxstat' is never used
[./booster/src/booster_stat.c:1]: (style) The function '__fxstat64' is never
used
[./booster/src/booster_stat.c:1]: (style) The function '__lxstat' is never used
[./booster/src/booster_stat.c:1]: (style) The function '__lxstat64' is never
used
[./booster/src/booster_stat.c:1]: (style) The function '__xstat' is never used
[./booster/src/booster_stat.c:1]: (style) The function '__xstat64' is never used
[./xlators/cluster/afr/src/afr.c:1]: (style) The function
'afr_deitransform_orig' is never used
[./libglusterfs/src/spec.lex.c:1]: (style) The function 'alloc_string' is never
used
[./libglusterfs/src/dict.c:1]: (style) The function 'data_copy' is never used
[./libglusterfs/src/defaults.c:1]: (style) The function
'default_lock_fnotify_cbk' is never used
[./libglusterfs/src/dict.c:1]: (style) The function 'dict_serialize_old' is
never used
[./libglusterfs/src/dict.c:1]: (style) The function
'dict_serialized_length_old' is never used
[./libglusterfs/src/dict.c:1]: (style) The function 'dict_unserialize_old' is
never used
[./booster/src/booster.c:1]: (style) The function 'dup2' is never used
[./xlators/debug/error-gen/src/error-gen.c:1]: (style) The function
'error_gen_forget' is never used
[./booster/src/booster_stat.c:1]: (style) The function 'fstat64' is never used
[:1]: (style) The function 'gf_auth' is never used
[./libglusterfs/src/logging.c:1]: (style) The function 'gf_log_fini' is never
used
[./libglusterfs/src/common-utils.c:1]: (style) The function
'gf_str_to_long_long' is never used
[./transport/ib-verbs/src/ib-verbs.c:1]: (style) The function
'ib_verbs_destroy_post' is never used
[./xlators/debug/io-stats/src/io-stats.c:1]: (style) The function
'io_stats_forget' is never used
[./xlators/performance/io-cache/src/io-cache.c:1]: (style) The function
'ioc_get_inode' is never used
[./libglusterfsclient/src/libglusterfsclient.c:1]: (style) The function
'libgf_del_inode_ctx' is never used
[./libglusterfsclient/src/libglusterfsclient.c:1]: (style) The function
'libgf_vmp_get_ghandle' is never used
[./booster/src/booster.c:1]: (style) The function 'lseek64' is never used
[./booster/src/booster_stat.c:1]: (style) The function 'lstat64' is never used
[./xlators/cluster/map/src/map.c:1]: (style) The function
'map_lock_fnotify_cbk' is never used
[./xlators/cluster/map/src/map.c:1]: (style) The function 'map_lock_notify_cbk'
is never used
[./booster/src/booster.c:1]: (style) The function 'mkfifo' is never used
[./libglusterfs/src/spec.lex.c:1]: (style) The function 'new_string' is never
used
[./xlators/features/path-convertor/src/path.c:1]: (style) The function
'path_getdents_cbk' is never used
[./xlators/features/path-convertor/src/path.c:1]: (style) The function
'path_readdir_cbk' is never used
[./xlators/features/locks/src/posix.c:1]: (style) The function 'pl_dump_inode'
is never used
[./xlators/storage/posix/src/posix.c:1]: (style) The function
'posix_print_xattr' is never used
[./booster/src/booster.c:1]: (style) The function 'pread64' is never used
[./booster/src/booster.c:1]: (style) The function 'pwrite' is never used
[./booster/src/booster.c:1]: (style) The function 'pwrite64' is never used
[./xlators/features/quota/src/quota.c:1]: (style) The function
'quota_removexattr_cbk' is never used
[./booster/src/booster.c:1]: (style) The function 'remove' is never used
[./booster/src/booster.c:1]: (style) The function 'sendfile' is never used
[./booster/src/booster.c:1]: (style) The function 'sendfile64' is never used
[./xlators/protocol/server/src/server-protocol.c:1]: (style) The function
'server_fentrylk_resume' is never used
[./xlators/protocol/server/src/server-helpers.c:1]: (style) The function
'server_loc_fill' is never used
[./xlators/performance/stat-prefetch/src/stat-prefetch.c:1]: (style) The
function 'sp_del_cache_fd' is never used
[./xlators/performance/stat-prefetch/src/stat-prefetch.c:1]: (style) The
function 'sp_put_cache' is never used
[./booster/src/booster_stat.c:1]: (style) The function 'stat64' is never used
[./booster/src/booster_stat.c:1]: (style) The function 'statfs64' is never used
[./booster/src/booster_stat.c:1]: (style) The function 'statvfs64' is never used
[./xlators/cluster/stripe/src/stripe.c:1]: (style) The function
'stripe_common_buf_cbk' is never used
[./xlators/cluster/stripe/src/stripe.c:1]: (style) The function
'stripe_common_cbk' is never used
[./xlators/cluster/stripe/src/stripe.c:1]: (style) The function
'stripe_common_remove_cbk' is never used
[./xlators/cluster/stripe/src/stripe.c:1]: (style) The function
'stripe_single_readv_cbk' is never used
[./xlators/cluster/stripe/src/stripe.c:1]: (style) The function
'stripe_single_writev_cbk' is never used
[./xlators/protocol/server/src/server-protocol.c:1]: (style) The function
'unknown_op_cbk' is never used
[./xlators/performance/write-behind/src/write-behind.c:1]: (style) The function
'wb_request_ref' is never used
theia glusterfs-3.0.3 #
-----------------------------
Removing the style issues reduces the whole report down to those
errors/possible errors:
-----------------------------
[./libglusterfs/src/dict.c:83]: (error) Memory leak: dict
[./libglusterfs/src/dict.c:179]: (error) Memory leak: newdata
[./libglusterfs/src/dict.c:251]: (possible error) Memory leak: pair
[./libglusterfs/src/fd.c:464]: (error) Possible null pointer dereference: fd -
otherwise it is redundant to check if fd is null at line 466
[./libglusterfs/src/y.tab.c:1743]: (possible error) Memory leak: node
[./libglusterfs/src/y.tab.c:2067]: (possible error) Memory leak: cmd
[./xlators/cluster/dht/src/switch.c:858]: (error) Memory leak: dup_str
[./xlators/protocol/client/src/client-protocol.c:3434]: (error) Possible null
pointer dereference: iobuf - otherwise it is redundant to check if iobuf is
null at line 3505
[./xlators/protocol/server/src/server-protocol.c:324]: (error) Possible null
pointer dereference: state - otherwise it is redundant to check if state is
null at line 344
[./xlators/protocol/server/src/server-protocol.c:5301]: (possible error) Memory
leak: conf_dir
-----------------------------
I tested the whole 3.0.3 tree with clang and build-scan but the report in html
is insane 388 MB big. If I tar and gzip it then I can get it down to about 33.9
MB but that is probably still to big to send it to the mailing list.
Compressing with 7-Zip reduces the whole report down to 2.8 MB. I think this is
small enough to send to the developers of GlusterFS but still to big to be sent
to all mailing list users. If you or any Gluster developer is interested in the
report then let me know where to send that 2.8 MB report to?
The overall summary when checking with clang is:
-----------------------------
Bug Summary
===========
Bug Type Quantity Display?
----------------------------------------
All Bugs 665
API
---
Argument with 'nonnull' attribute passed null 9
Dead store
----------
Dead assignment 384
Dead increment 7
Dead initialization 10
Dead nested assignment 7
Logic errors
------------
Dereference of undefined pointer value 2
Division-by-zero 2
Null dereference 242
Uninitialized argument 1
Use of uninitialized value 1
-----------------------------
> Csaba
>
Steve
--
Sicherer, schneller und einfacher. Die aktuellen Internet-Browser -
jetzt kostenlos herunterladen! http://portal.gmx.net/de/go/chbrowser