[no patch]: source3/utils/regedit_valuelist.c

Christopher R. Hertel crh at ubiqx.mn.org
Thu Feb 13 14:18:50 MST 2014

So... looking at a Coverity defect, I see an obvious but only partial fix:

--- a/source3/utils/regedit_valuelist.c
+++ b/source3/utils/regedit_valuelist.c
@@ -169,7 +169,7 @@ static bool string_is_printable(const char *s)

 static WERROR append_data_summary(struct value_item *vitem)
-       char *tmp;
+       char *tmp = NULL;

 /* This is adapted from print_registry_value() in net_registry_util.c */

Initializing the variable <tmp> to NULL is needed, because there are two
instances in which we can break out of the switch() statement without
setting any value to <tmp>.

                if (!pull_reg_sz(vitem, &vitem->data, &s)) {


                if (!pull_reg_multi_sz(vitem, &vitem->data, &a)) {

However, at the end of the function, we have:

        if (tmp == NULL) {
                return WERR_NOMEM;

So the problem is this:  What error value *should* be returned if either
pull_reg_sz() or pull_reg_multi_sz() fail?  WERR_NOMEM seems like the wrong
result in those cases.

Chris -)-----

PS.  My e'mail provider has suffered a catastrophic power-surge motherboard
     of a blowout.  As a result, I am not currently receiving incoming
     e'mail.  I'm watching the samba-technical archives for responses.

"Implementing CIFS - the Common Internet FileSystem" ISBN: 013047116X
Samba Team -- http://www.samba.org/     -)-----   Christopher R. Hertel
jCIFS Team -- http://jcifs.samba.org/   -)-----   ubiqx development, uninq.
ubiqx Team -- http://www.ubiqx.org/     -)-----   crh at ubiqx.mn.org
OnLineBook -- http://ubiqx.org/cifs/    -)-----   crh at ubiqx.org

More information about the samba-technical mailing list