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

(ITS#8949) slapd crashes when adding first olcPlugin value



Full_Name: Ryan Tandy
Version: 2.4, master
OS: Debian
URL: 
Submission from: (NULL) (70.66.128.207)
Submitted by: ryan


Initial configuration, no existing value for olcPlugin:

ldapmodify -H ldap://:9000 -x -D cn=config -w secret << eof
dn: olcDatabase={1}mdb,cn=config
add: olcPlugin
olcPlugin: preoperation ./libtestpreop-plugin.so testpreop_init

eof

Thread 4 "slapd" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff6020700 (LWP 17326)]
0x00005555556ee351 in slapi_int_free_object_extensions (objecttype=1,
object=0x7fffec000cb0) at slapi_ext.c:298
298		if ( eblock->extensions != NULL ) {
(gdb) bt
#0  0x00005555556ee351 in slapi_int_free_object_extensions (objecttype=1,
object=0x7fffec000cb0) at slapi_ext.c:298
#1  0x00005555555c14f3 in slap_op_free (op=0x7fffec000cb0, ctx=0x7ffff601fb90)
at operation.c:113
#2  0x00005555555a62c6 in connection_operation (ctx=0x7ffff601fb90,
arg_v=0x7fffec000cb0) at connection.c:1246
#3  0x00005555555a6577 in connection_read_thread (ctx=0x7ffff601fb90, argv=0xb)
at connection.c:1326
#4  0x00005555556a2dff in ldap_int_thread_pool_wrapper (xpool=0x55555580cc40) at
tpool.c:1048
#5  0x00007ffff7f7ffa3 in start_thread (arg=<optimized out>) at
pthread_create.c:486
#6  0x00007ffff7eb089f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

It looks like we went through slap_op_alloc() with slapi_plugins_used = 0, so
slapi_int_create_object_extensions() was never called, but in slap_op_free() we
have added a plugin and have called slapi_int_free_object_extensions().

Can probably be fixed just by short-circuiting when eblock == NULL?