Skip to content
Snippets Groups Projects
Commit cc743d2c authored by Howard Chu's avatar Howard Chu
Browse files

ITS#2865 don't try to calloc 0 bytes, log an error and return instead.

Don't crash in slapcat when NULL entry is returned.
parent 67ee75cc
Branches
Tags
No related merge requests found
......@@ -659,6 +659,16 @@ int entry_decode(struct berval *bv, Entry **e)
BerVarray bptr;
i = entry_getlen(&ptr);
if (!i) {
#ifdef NEW_LOGGING
LDAP_LOG( OPERATION, INFO,
"entry_decode: entry length was zero\n", 0, 0, 0);
#else
Debug( LDAP_DEBUG_ANY,
"entry_decode: entry length was zero\n", 0, 0, 0);
#endif
return LDAP_OTHER;
}
x = ch_calloc(1, i);
i = entry_getlen(&ptr);
x->e_name.bv_val = (char *) ptr;
......
......@@ -66,6 +66,13 @@ main( int argc, char **argv )
Entry* e = be->be_entry_get( be, id );
op.o_bd = be;
if ( e == NULL ) {
printf("# no data for entry id=%08lx\n\n", (long) id );
rc = EXIT_FAILURE;
if( continuemode ) continue;
break;
}
if( sub_ndn.bv_len && !dnIsSuffix( &e->e_nname, &sub_ndn ) ) {
be_entry_release_r( &op, e );
continue;
......@@ -89,13 +96,6 @@ main( int argc, char **argv )
printf( "# id=%08lx\n", (long) id );
}
if ( e == NULL ) {
printf("# no data for entry id=%08lx\n\n", (long) id );
rc = EXIT_FAILURE;
if( continuemode ) continue;
break;
}
data = entry2str( e, &len );
be_entry_release_r( &op, e );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment