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

Re: (ITS#4697) core dump from acl.c regex



Still coring in 2.3.28 + connection code from HEAD.

Backtrace:

(gdb) info threads
  10 process 25180  0x00002ae257d12e2c in pthread_join () from 
/lib/libpthread.so.0
  9 process 25184  0x00002ae257ef2b2c in epoll_wait () from /lib/libc.so.6
  8 process 25186  0x00002ae257d144e4 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
  7 process 25188  0x00002ae257d144e4 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
  6 process 25189  0x00002ae257d144e4 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
  5 process 25190  0x00002ae257d144e4 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
  4 process 25212  0x00002ae257d144e4 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
  3 process 25213  0x00002ae257d144e4 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
  2 process 25216  0x00002ae257d144e4 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
* 1 process 25185  0x00002ae257ed27dd in fnmatch () from /lib/libc.so.6

(gdb) thread 1
[Switching to thread 1 (process 25185)]#7  0x00000000004457f6 in 
slap_acl_get (a=Variable "a" is not available.
) at acl.c:874
874                                     if ( regexec( &a->acl_attrval_re, 
val->bv_val, 0, NULL, 0 ) )
(gdb) bt
#0  0x00002ae257ed27dd in fnmatch () from /lib/libc.so.6
#1  0x00002ae257eddd22 in re_exec () from /lib/libc.so.6
#2  0x00002ae257edb70b in re_exec () from /lib/libc.so.6
#3  0x00002ae257ed9d83 in re_exec () from /lib/libc.so.6
#4  0x00002ae257ed8526 in re_exec () from /lib/libc.so.6
#5  0x00002ae257ed7e83 in re_exec () from /lib/libc.so.6
#6  0x00002ae257ed74a6 in regexec () from /lib/libc.so.6
#7  0x00000000004457f6 in slap_acl_get (a=Variable "a" is not available.
) at acl.c:874
#8  0x0000000000445eb3 in slap_access_allowed (op=0x2aaaab0e03c8, 
e=0x2ae359f442c8, desc=0x2ae2586e3d88, val=0x2aaab6d68fb8, access=ACL_READ,
    state=0x40e7d500, maskp=0x40e7d448) at acl.c:221
#9  0x0000000000447dd1 in fe_access_allowed (op=0x2aaaab0e03c8, 
e=0x2ae359f442c8, desc=0x2ae2586e3d88, val=0x2aaab6d68fb8, access=ACL_READ,
    state=0x40e7d500, maskp=0x40e7d448) at acl.c:318
#10 0x0000000000444620 in access_allowed_mask (op=0x2aaaab0e03c8, 
e=0x2ae359f442c8, desc=0x2ae2586e3d88, val=0x2aaab6d68fb8, access=ACL_READ,
    state=0x40e7d500, maskp=0x0) at acl.c:429
#11 0x00000000004356f1 in slap_send_search_entry (op=0x2aaaab0e03c8, 
rs=0x40ffeee0) at result.c:894
#12 0x00002ae2596f4894 in hdb_search (op=0x2aaaab0e03c8, rs=0x40ffeee0) at 
search.c:878
#13 0x0000000000429502 in fe_op_search (op=0x2aaaab0e03c8, rs=0x40ffeee0) 
at search.c:355
#14 0x0000000000429d42 in do_search (op=0x2aaaab0e03c8, rs=0x40ffeee0) at 
search.c:217
#15 0x0000000000427a0f in connection_operation (ctx=Variable "ctx" is not 
available.
) at connection.c:1109
#16 0x0000000000427dd4 in connection_read_thread (ctx=0x40fff030, 
argv=Variable "argv" is not available.
) at connection.c:1236




(gdb) frame 7
#7  0x00000000004457f6 in slap_acl_get (a=Variable "a" is not available.
) at acl.c:874
874                                     if ( regexec( &a->acl_attrval_re, 
val->bv_val, 0, NULL, 0 ) )

(gdb) frame 8
#8  0x0000000000445eb3 in slap_access_allowed (op=0x2aaaab0e03c8, 
e=0x2ae359f442c8, desc=0x2ae2586e3d88, val=0x2aaab6d68fb8, access=ACL_READ,
    state=0x40e7d500, maskp=0x40e7d448) at acl.c:221
221             while ( ( a = slap_acl_get( a, &count, op, e, desc, val,


(gdb) frame 9
#9  0x0000000000447dd1 in fe_access_allowed (op=0x2aaaab0e03c8, 
e=0x2ae359f442c8, desc=0x2ae2586e3d88, val=0x2aaab6d68fb8, access=ACL_READ,
    state=0x40e7d500, maskp=0x40e7d448) at acl.c:318
318             rc = slap_access_allowed( op, e, desc, val, access, state, 
maskp );


(gdb) frame 10
#10 0x0000000000444620 in access_allowed_mask (op=0x2aaaab0e03c8, 
e=0x2ae359f442c8, desc=0x2ae2586e3d88, val=0x2aaab6d68fb8, access=ACL_READ,
    state=0x40e7d500, maskp=0x0) at acl.c:429
429                     ret = frontendDB->bd_info->bi_access_allowed( op, e,


(gdb) frame 11
#11 0x00000000004356f1 in slap_send_search_entry (op=0x2aaaab0e03c8, 
rs=0x40ffeee0) at result.c:894
894                                     if ( ! access_allowed( op, 
rs->sr_entry,


(gdb) frame 12
#12 0x00002ae2596f4894 in hdb_search (op=0x2aaaab0e03c8, rs=0x40ffeee0) at 
search.c:878
878                                     rs->sr_err = send_search_entry( op, 
rs );


(gdb) frame 13
#13 0x0000000000429502 in fe_op_search (op=0x2aaaab0e03c8, rs=0x40ffeee0) 
at search.c:355
355                             (op->o_bd->be_search)( op, rs );


(gdb) frame 14
#14 0x0000000000429d42 in do_search (op=0x2aaaab0e03c8, rs=0x40ffeee0) at 
search.c:217
217             rs->sr_err = frontendDB->be_search( op, rs );


(gdb) frame 15
#15 0x0000000000427a0f in connection_operation (ctx=Variable "ctx" is not 
available.
) at connection.c:1109
1109            rc = (*(opfun[opidx]))( op, &rs );

(gdb) frame 16
#16 0x0000000000427dd4 in connection_read_thread (ctx=0x40fff030, 
argv=Variable "argv" is not available.
) at connection.c:1236
1236                    rc = (long)connection_operation( ctx, cri.op );


(gdb) frame 17
#17 0x00002ae2572c5724 in ldap_int_thread_pool_wrapper 
(xpool=0x2ae258ac0080) at tpool.c:478
478                     ctx->ltc_start_routine(ltc_key, ctx->ltc_arg);



(gdb) frame 8
#8  0x0000000000445eb3 in slap_access_allowed (op=0x2aaaab0e03c8, 
e=0x2ae359f442c8, desc=0x2ae2586e3d88, val=0x2aaab6d68fb8, access=ACL_READ,
    state=0x40e7d500, maskp=0x40e7d448) at acl.c:221
221             while ( ( a = slap_acl_get( a, &count, op, e, desc, val,

(gdb) print *a
$2 = {acl_filter = 0x0, acl_dn_style = ACL_STYLE_CHILDREN, acl_dn_re = 
{buffer = 0x0, allocated = 0, used = 0, syntax = 0, fastmap = 0x0, 
translate = 0x0,
    re_nsub = 0, can_be_null = 0, regs_allocated = 0, fastmap_accurate = 0, 
no_sub = 0, not_bol = 0, not_eol = 0, newline_anchor = 0}, acl_dn_pat = {
    bv_len = 18, bv_val = 0x2ae2586ce858 "dc=stanford,dc=edu"}, acl_attrs = 
0x2ae258640080, acl_attrval_mr = 0x0, acl_attrval_style = ACL_STYLE_REGEX,
  acl_attrval_re = {buffer = 0x0, allocated = 0, used = 0, syntax = 0, 
fastmap = 0x0, translate = 0x0, re_nsub = 0, can_be_null = 0, 
regs_allocated = 0,
    fastmap_accurate = 0, no_sub = 0, not_bol = 0, not_eol = 0, 
newline_anchor = 0}, acl_attrval = {bv_len = 0, bv_val = 0x0}, acl_access = 
0x2ae258ae9e20,
  acl_next = 0x2ae258ac55c0}


--Quanah

--
Quanah Gibson-Mount
Principal Software Developer
ITS/Shared Application Services
Stanford University
GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html