]> git.sur5r.net Git - openldap/commitdiff
Minor cleanup (coverity)
authorHoward Chu <hyc@symas.com>
Sun, 18 Jan 2015 14:24:22 +0000 (14:24 +0000)
committerHoward Chu <hyc@symas.com>
Sun, 18 Jan 2015 14:25:41 +0000 (14:25 +0000)
servers/slapd/slapcommon.c
servers/slapd/syncrepl.c
servers/slapd/syntax.c
tests/progs/slapd-mtread.c

index ca8ac021d32cfd34b98413b7558b48a46334deac..552a745aefd080ca4a29b980c12df4404bc8c100 100644 (file)
@@ -437,6 +437,7 @@ slap_tool_init(
                        }
 
                        if ( ludp->lud_dn != NULL && ludp->lud_dn[0] != '\0' ) {
+                               ch_free( subtree );
                                subtree = ludp->lud_dn;
                                ludp->lud_dn = NULL;
                        }
@@ -522,6 +523,7 @@ slap_tool_init(
                        case SLAPCAT:
                        case SLAPSCHEMA:
                                /* dump subtree */
+                               ch_free( subtree );
                                subtree = ch_strdup( optarg );
                                break;
                        }
index 6ad8dc5943308a18ac3016e1b40c3a897c2b0c04..0e3c34a43159e8a6ad21246a165daa7ceca1a40b 100644 (file)
@@ -910,7 +910,7 @@ do_syncrep2(
                        }
                        punlock = -1;
                        if ( ber_peek_tag( ber, &len ) == LDAP_TAG_SYNC_COOKIE ) {
-                               ber_scanf( ber, /*"{"*/ "m}", &cookie );
+                               if ( ber_scanf( ber, /*"{"*/ "m}", &cookie ) != LBER_ERROR ) {
 
                                Debug( LDAP_DEBUG_SYNC, "do_syncrep2: %s cookie=%s\n",
                                        si->si_ridtxt,
@@ -995,6 +995,7 @@ do_syncrep2(
                                        }
                                        op->o_controls[slap_cids.sc_LDAPsync] = &syncCookie;
                                }
+                               }
                        }
                        rc = 0;
                        if ( si->si_syncdata && si->si_logstate == SYNCLOG_LOGGING ) {
@@ -1297,20 +1298,23 @@ do_syncrep2(
                                                ber_scanf( ber, "b", &refreshDeletes );
                                        }
                                        syncUUIDs = NULL;
-                                       ber_scanf( ber, "[W]", &syncUUIDs );
+                                       rc = ber_scanf( ber, "[W]", &syncUUIDs );
                                        ber_scanf( ber, /*"{"*/ "}" );
-                                       if ( refreshDeletes ) {
-                                               syncrepl_del_nonpresent( op, si, syncUUIDs,
-                                                       &syncCookie, m );
-                                               ber_bvarray_free_x( syncUUIDs, op->o_tmpmemctx );
-                                       } else {
-                                               int i;
-                                               for ( i = 0; !BER_BVISNULL( &syncUUIDs[i] ); i++ ) {
-                                                       (void)avl_presentlist_insert( si, &syncUUIDs[i] );
-                                                       slap_sl_free( syncUUIDs[i].bv_val, op->o_tmpmemctx );
+                                       if ( rc != LBER_ERROR ) {
+                                               if ( refreshDeletes ) {
+                                                       syncrepl_del_nonpresent( op, si, syncUUIDs,
+                                                               &syncCookie, m );
+                                                       ber_bvarray_free_x( syncUUIDs, op->o_tmpmemctx );
+                                               } else {
+                                                       int i;
+                                                       for ( i = 0; !BER_BVISNULL( &syncUUIDs[i] ); i++ ) {
+                                                               (void)avl_presentlist_insert( si, &syncUUIDs[i] );
+                                                               slap_sl_free( syncUUIDs[i].bv_val, op->o_tmpmemctx );
+                                                       }
+                                                       slap_sl_free( syncUUIDs, op->o_tmpmemctx );
                                                }
-                                               slap_sl_free( syncUUIDs, op->o_tmpmemctx );
                                        }
+                                       rc = 0;
                                        slap_sync_cookie_free( &syncCookie, 0 );
                                        break;
                                default:
index 004499deab03ade4ac767574010ee23e5dfde97f..7ac7180e0d4e81083e40bcb6ae9da071bf3f52b5 100644 (file)
@@ -224,6 +224,7 @@ syn_add(
                        {
                                Debug( LDAP_DEBUG_ANY, "syn_add(%s): exactly one substitute syntax must be present\n",
                                        ssyn->ssyn_syn.syn_oid, 0, 0 );
+                               SLAP_FREE( ssyn );
                                return SLAP_SCHERR_SYN_SUBST_NOT_SPECIFIED;
                        }
 
@@ -231,6 +232,7 @@ syn_add(
                        if ( subst == NULL ) {
                                Debug( LDAP_DEBUG_ANY, "syn_add(%s): substitute syntax %s not found\n",
                                        ssyn->ssyn_syn.syn_oid, (*lsei)->lsei_values[0], 0 );
+                               SLAP_FREE( ssyn );
                                return SLAP_SCHERR_SYN_SUBST_NOT_FOUND;
                        }
                        break;
index d17bfae22ad93b215d56b961bcb9aabecd02561c..690e80f784d07f63d282080db42f38ef040f8a90 100644 (file)
@@ -201,6 +201,7 @@ main( int argc, char **argv )
 
                case 'h':               /* the servers host */
                        host = strdup( optarg );
+                       break;
 
                case 'i':
                        tester_ignore_str2errlist( optarg );