[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#8327) The mod->sm_numvals values is checked and not seen as valid in mods.c



Full_Name: Emmanuel Lecharny
Version: 2.4.42
OS: Linux CentOS 6
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (2a01:cb04:49:8d00:e9fd:e874:85a8:1553)


On an architecture with 2 servers replicated using delta-syncrepl (MMR), doing
some modififications on one server might lead to a core dump, where the stack
trace shows that the mod->sm_numvals value is not what is expcted in the
modify_add_values value :

...
	if ( !BER_BVISNULL( &mod->sm_values[mod->sm_numvals] )) {
		unsigned i;
		for ( i = 0; !BER_BVISNULL( &mod->sm_values[i] ); i++ );
		assert( mod->sm_numvals == i );
	}
...

Here, the assert fails. Here is the stacktrace :

(gdb) bt
#0  0x0000003a9b632625 in raise () from /lib64/libc.so.6
#1  0x0000003a9b633e05 in abort () from /lib64/libc.so.6
#2  0x0000003a9b62b74e in __assert_fail_base () from /lib64/libc.so.6
#3  0x0000003a9b62b810 in __assert_fail () from /lib64/libc.so.6