]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9160 OOM handling in slapd
authorOndřej Kuzník <ondra@mistotebe.net>
Thu, 30 Jan 2020 09:01:32 +0000 (09:01 +0000)
committerOndřej Kuzník <ondra@mistotebe.net>
Fri, 7 Feb 2020 09:46:52 +0000 (09:46 +0000)
servers/slapd/aci.c
servers/slapd/bconfig.c
servers/slapd/modify.c
servers/slapd/schema_init.c
servers/slapd/slapmodify.c
servers/slapd/value.c

index 86ace3f5360ead9f8edc00aa004b0a5a6cb5f2c4..232c32fc890f2e472007270bbda1ac2a5b7820ae 100644 (file)
@@ -1258,7 +1258,7 @@ OpenLDAPaciNormalizeRight(
                                
                                        len = nattrs.bv_len + ( !BER_BVISEMPTY( &nattrs ) ? STRLENOF( "," ) : 0 )
                                                + ad->ad_cname.bv_len;
-                                       nattrs.bv_val = ber_memrealloc_x( nattrs.bv_val, len + 1, ctx );
+                                       nattrs.bv_val = slap_sl_realloc( nattrs.bv_val, len + 1, ctx );
                                        ptr = &nattrs.bv_val[ nattrs.bv_len ];
                                        if ( !BER_BVISEMPTY( &nattrs ) ) {
                                                *ptr++ = ',';
@@ -1270,7 +1270,7 @@ OpenLDAPaciNormalizeRight(
 
                        }
 
-                       naction->bv_val = ber_memrealloc_x( naction->bv_val,
+                       naction->bv_val = slap_sl_realloc( naction->bv_val,
                                naction->bv_len + STRLENOF( ";" )
                                + perms.bv_len + STRLENOF( ";" )
                                + nattrs.bv_len + 1,
@@ -1345,7 +1345,7 @@ OpenLDAPaciNormalizeRights(
                        *nactions = nbv;
 
                } else {
-                       nactions->bv_val = ber_memrealloc_x( nactions->bv_val,
+                       nactions->bv_val = slap_sl_realloc( nactions->bv_val,
                                nactions->bv_len + STRLENOF( "$" )
                                + nbv.bv_len + 1,
                                ctx );
@@ -1703,7 +1703,7 @@ OpenLDAPaciPrettyNormal(
                                }
 
                                bv.bv_len += STRLENOF( "/" ) + oc->soc_cname.bv_len;
-                               bv.bv_val = ber_memalloc_x( bv.bv_len + 1, ctx );
+                               bv.bv_val = slap_sl_malloc( bv.bv_len + 1, ctx );
 
                                ptr = bv.bv_val;
                                ptr = lutil_strncopy( ptr, ntype.bv_val, ntype.bv_len );
@@ -1762,7 +1762,7 @@ OpenLDAPaciPrettyNormal(
                + ntype.bv_len + STRLENOF( "#" )
                + nsubject.bv_len;
 
-       out->bv_val = ber_memalloc_x( out->bv_len + 1, ctx );
+       out->bv_val = slap_sl_malloc( out->bv_len + 1, ctx );
        ptr = lutil_strncopy( out->bv_val, oid.bv_val, oid.bv_len );
        ptr[ 0 ] = '#';
        ptr++;
index 79a3fd1cfcb33aa764cdd4973601136f539d23e2..ceee648683916ef51e329d017828983c16d34a56 100644 (file)
@@ -3032,7 +3032,7 @@ tcp_buffer_unparse( int size, int rw, Listener *l, struct berval *val )
                }
        }
 
-       val->bv_val = SLAP_MALLOC( val->bv_len + 1 );
+       val->bv_val = ch_malloc( val->bv_len + 1 );
 
        ptr = val->bv_val;
 
@@ -3110,7 +3110,7 @@ tcp_buffer_add_one( int argc, char **argv )
                if ( rw & SLAP_TCP_WMEM ) slapd_tcp_wmem = size;
        }
 
-       tcp_buffer = SLAP_REALLOC( tcp_buffer, sizeof( struct berval ) * ( tcp_buffer_num + 2 ) );
+       tcp_buffer = ch_realloc( tcp_buffer, sizeof( struct berval ) * ( tcp_buffer_num + 2 ) );
        /* append */
        tcp_buffer[ tcp_buffer_num ] = val;
 
index fb1cc3f1c3dfe33455fd5a0a713a28dbb86c07e3..cfdd7b0aa9f9ffec91634a3efc4d6701fdd98860 100644 (file)
@@ -619,7 +619,7 @@ int slap_mods_check(
                        if( nvals && ad->ad_type->sat_equality &&
                                ad->ad_type->sat_equality->smr_normalize )
                        {
-                               ml->sml_nvalues = ber_memalloc_x(
+                               ml->sml_nvalues = slap_sl_malloc(
                                        (nvals+1)*sizeof(struct berval), ctx );
 
                                for ( nvals = 0; !BER_BVISNULL( &ml->sml_values[nvals] ); nvals++ ) {
index 92407391e990b0125235250d203bdd21762eb785..c067ef825cea1785709fc16139701c21951d002b 100644 (file)
@@ -3415,7 +3415,7 @@ serialNumberAndIssuerCheck(
                        ber_len_t src, dst;
 
                        ni.bv_len = is->bv_len - numdquotes;
-                       ni.bv_val = ber_memalloc_x( ni.bv_len + 1, ctx );
+                       ni.bv_val = slap_sl_malloc( ni.bv_len + 1, ctx );
                        for ( src = 0, dst = 0; src < is->bv_len; src++, dst++ ) {
                                if ( is->bv_val[src] == '"' ) {
                                        src++;
@@ -4004,7 +4004,7 @@ issuerAndThisUpdateCheck(
                ber_len_t src, dst;
 
                ni.bv_len = is->bv_len - numdquotes;
-               ni.bv_val = ber_memalloc_x( ni.bv_len + 1, ctx );
+               ni.bv_val = slap_sl_malloc( ni.bv_len + 1, ctx );
                for ( src = 0, dst = 0; src < is->bv_len; src++, dst++ ) {
                        if ( is->bv_val[src] == '"' ) {
                                src++;
@@ -4606,7 +4606,7 @@ serialNumberAndIssuerSerialCheck(
                ber_len_t src, dst;
 
                ni.bv_len = is->bv_len - numdquotes;
-               ni.bv_val = ber_memalloc_x( ni.bv_len + 1, ctx );
+               ni.bv_val = slap_sl_malloc( ni.bv_len + 1, ctx );
                for ( src = 0, dst = 0; src < is->bv_len; src++, dst++ ) {
                        if ( is->bv_val[src] == '"' ) {
                                src++;
index 3f3158dcf2c0161612580a2740da3f1791cf8e4b..169c9bf45185d039c820e1b139fa1d79d4f2d390 100644 (file)
@@ -342,9 +342,9 @@ slapmodify( int argc, char **argv )
 
                                if ( i != 0 )
                                {
-                                       mods.sm_values = SLAP_CALLOC( sizeof( struct berval ), i + 1 );
+                                       mods.sm_values = ch_calloc( sizeof( struct berval ), i + 1 );
                                        if ( normalize ) {
-                                               mods.sm_nvalues = SLAP_CALLOC( sizeof( struct berval ), i + 1 );
+                                               mods.sm_nvalues = ch_calloc( sizeof( struct berval ), i + 1 );
                                        } else {
                                                mods.sm_nvalues = NULL;
                                        }
index 73c2052f1611bace7184b6236eda6991d36f1712..c901236d5e7858017ab6de660ea4a70f3fc9a899 100644 (file)
@@ -514,7 +514,7 @@ ordered_value_pretty(
                bv = *out;
 
                out->bv_len = idx.bv_len + bv.bv_len;
-               out->bv_val = ber_memalloc_x( out->bv_len + 1, ctx );
+               out->bv_val = slap_sl_malloc( out->bv_len + 1, ctx );
                
                AC_MEMCPY( out->bv_val, idx.bv_val, idx.bv_len );
                AC_MEMCPY( &out->bv_val[ idx.bv_len ], bv.bv_val, bv.bv_len + 1 );
@@ -591,7 +591,7 @@ ordered_value_normalize(
                bv = *normalized;
 
                normalized->bv_len = idx.bv_len + bv.bv_len;
-               normalized->bv_val = ber_memalloc_x( normalized->bv_len + 1, ctx );
+               normalized->bv_val = slap_sl_malloc( normalized->bv_len + 1, ctx );
                
                AC_MEMCPY( normalized->bv_val, idx.bv_val, idx.bv_len );
                AC_MEMCPY( &normalized->bv_val[ idx.bv_len ], bv.bv_val, bv.bv_len + 1 );