From 5ecff3593326e3727951dc82f597fbd7a467d829 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Sun, 18 Jan 2015 14:24:22 +0000 Subject: [PATCH] Minor cleanup (coverity) --- servers/slapd/slapcommon.c | 2 ++ servers/slapd/syncrepl.c | 28 ++++++++++++++++------------ servers/slapd/syntax.c | 2 ++ tests/progs/slapd-mtread.c | 1 + 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/servers/slapd/slapcommon.c b/servers/slapd/slapcommon.c index ca8ac021d3..552a745aef 100644 --- a/servers/slapd/slapcommon.c +++ b/servers/slapd/slapcommon.c @@ -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; } diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index 6ad8dc5943..0e3c34a431 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -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: diff --git a/servers/slapd/syntax.c b/servers/slapd/syntax.c index 004499deab..7ac7180e0d 100644 --- a/servers/slapd/syntax.c +++ b/servers/slapd/syntax.c @@ -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; diff --git a/tests/progs/slapd-mtread.c b/tests/progs/slapd-mtread.c index d17bfae22a..690e80f784 100644 --- a/tests/progs/slapd-mtread.c +++ b/tests/progs/slapd-mtread.c @@ -201,6 +201,7 @@ main( int argc, char **argv ) case 'h': /* the servers host */ host = strdup( optarg ); + break; case 'i': tester_ignore_str2errlist( optarg ); -- 2.39.5