URL:
https://github.com/SSSD/sssd/pull/89
Title: #89: nss: rewrite nss responder so it uses cache_req
lslebodn commented:
"""
I saw a crash as part of ad_testing. But it seems to be unrelated to AD tests.
```
#0 __strlen_sse2_pminub () at ../sysdeps/x86_64/multiarch/strlen-sse2-pminub.S:38
#1 0x00007f69bd6c5384 in sss_tc_utf8_str_tolower (mem_ctx=mem_ctx@entry=0x7f69bfce3b80,
s=0x0) at src/util/sss_tc_utf8.c:31
#2 0x00007f69bd6c2df9 in sss_get_cased_name (mem_ctx=mem_ctx@entry=0x7f69bfce3b80,
orig_name=<optimized out>, case_sensitive=<optimized out>) at
src/util/usertools.c:516
#3 0x00007f69bdf41d7b in cache_req_svc_by_name_prepare_domain_data (cr=0x7f69bfcee0c0,
data=0x7f69bfce3c70, domain=0x7f69bfcd69c0)
at src/responder/common/cache_req/plugins/cache_req_svc_by_name.c:57
#4 0x00007f69bdf3d188 in cache_req_prepare_domain_data (domain=0x7f69bfcd69c0,
cr=0x7f69bfcee0c0) at src/responder/common/cache_req/cache_req.c:200
#5 cache_req_set_domain (domain=0x7f69bfcd69c0, cr=0x7f69bfcee0c0) at
src/responder/common/cache_req/cache_req.c:241
#6 cache_req_next_domain (req=0x7f69bfcede90) at
src/responder/common/cache_req/cache_req.c:536
#7 0x00007f69bdf3d90f in cache_req_input_parsed (subreq=0x7f69bfcee1d0) at
src/responder/common/cache_req/cache_req.c:462
#8 0x00007f69bdf3af9e in sss_dp_get_domains_process (subreq=0x0) at
src/responder/common/responder_get_domains.c:255
#9 0x00007f69bdf394bc in sss_dp_internal_get_done (pending=<optimized out>,
ptr=<optimized out>) at src/responder/common/responder_dp.c:813
#10 0x00007f69bcdf9862 in complete_pending_call_and_unlock
(connection=connection@entry=0x7f69bfcdbb60, pending=0x7f69bfce2170,
message=message@entry=0x7f69bfcdd620)
at dbus-connection.c:2314
#11 0x00007f69bcdfcb51 in dbus_connection_dispatch
(connection=connection@entry=0x7f69bfcdbb60) at dbus-connection.c:4580
#12 0x00007f69bd6b70b2 in sbus_dispatch (ev=0x7f69bfccda30, te=<optimized out>,
tv=..., data=<optimized out>) at src/sbus/sssd_dbus_connection.c:96
#13 0x00007f69b9d51b4f in tevent_common_loop_timer_delay (ev=ev@entry=0x7f69bfccda30) at
../tevent_timed.c:341
#14 0x00007f69b9d52b5a in epoll_event_loop_once (ev=0x7f69bfccda30, location=<optimized
out>) at ../tevent_epoll.c:911
#15 0x00007f69b9d51257 in std_event_loop_once (ev=0x7f69bfccda30, location=0x7f69bd6e0167
"src/util/server.c:705") at ../tevent_standard.c:114
#16 0x00007f69b9d4d40d in _tevent_loop_once (ev=ev@entry=0x7f69bfccda30,
location=location@entry=0x7f69bd6e0167 "src/util/server.c:705") at
../tevent.c:533
#17 0x00007f69b9d4d5ab in tevent_common_loop_wait (ev=0x7f69bfccda30,
location=0x7f69bd6e0167 "src/util/server.c:705") at ../tevent.c:637
#18 0x00007f69b9d511f7 in std_event_loop_wait (ev=0x7f69bfccda30, location=0x7f69bd6e0167
"src/util/server.c:705") at ../tevent_standard.c:140
#19 0x00007f69bd6c2433 in server_loop (main_ctx=0x7f69bfccee80) at src/util/server.c:705
#20 0x00007f69bdf29357 in main (argc=6, argv=<optimized out>) at
src/responder/nss/nsssrv.c:559
```
It is a dereference of NULL pointer
```
(gdb) frame 3
#3 0x00007f69bdf41d7b in cache_req_svc_by_name_prepare_domain_data (cr=0x7f69bfcee0c0,
data=0x7f69bfce3c70, domain=0x7f69bfcd69c0)
at src/responder/common/cache_req/plugins/cache_req_svc_by_name.c:57
57 protocol = sss_get_cased_name(tmp_ctx, cr->data->svc.protocol.name,
(gdb) p name
$3 = 0x7f69bfcefb80 "rpcbind"
(gdb) p cr->data->svc.protocol
$4 = {name = 0x0, lookup = 0x0}
```
I assume this is unrelated to AD_tests but to the other unrelated thing which was done as
part of test
"""
See the full comment at
https://github.com/SSSD/sssd/pull/89#issuecomment-266443860