URL:
https://github.com/SSSD/sssd/pull/712
Title: #712: SSSCTL: user-checks does not show custom attributes
sumit-bose commented:
"""
@pbrezina, I can reproduce the crash with current master and
```
[ifp]
user_attributes = +telephoneNumber
...
[domain/...]
ldap_user_extra_attrs = telephoneNumber
```
and gdb's 'bt full' looks like:
```
#6 0xb71a9e8e in _dbus_warn_return_if_fail (function=function@entry=0xb71b95c0
<__func__.5027> "dbus_message_iter_open_container",
assertion=0xb71b8b70 "(type == DBUS_TYPE_STRUCT && contained_signature ==
NULL) || (type == DBUS_TYPE_DICT_ENTRY && contained_signature == NULL) || (type ==
DBUS_TYPE_VARIANT && contained_signature != NULL) || (type == DBU"...,
file=0xb71b8f45 "../../dbus/dbus-message.c", line=2973) at
../../dbus/dbus-internals.c:936
No locals.
#7 0xb7198e75 in dbus_message_iter_open_container (iter=<optimized out>,
type=<optimized out>, contained_signature=<optimized out>, sub=<optimized
out>) at ../../dbus/dbus-message.c:2995
real = 0xbfe6e4f4
contained_str = {dummy1 = 0x8e8fdd8, dummy2 = 149422160, dummy3 = 3, dummy_bit1 =
1, dummy_bit2 = 0, dummy_bit3 = 0, dummy_bits = 0}
ret = <optimized out>
real_sub = 0xbfe6e414
contained_signature_validity = <optimized out>
sub = <optimized out>
contained_signature = <optimized out>
type = <optimized out>
iter = <optimized out>
real = 0xbfe6e4f4
real_sub = 0xbfe6e414
#8 0xb7218079 in sbus_copy_iterator_container (from=0xbfe6e52c, to=0xbfe6e4f4, type=101)
at ../src/sbus/interface/sbus_properties.c:190
from_sub = {dummy1 = 0x8e8fd98, dummy2 = 0x600000, dummy3 = 108, dummy4 =
149487064, dummy5 = 3, dummy6 = 149487064, dummy7 = 16, dummy8 = -1222850888, dummy9 = 0,
dummy10 = -1222736804, dummy11 = -1222850440,
pad1 = -1075387084, pad2 = 0xb71a383d <dbus_type_is_container+29>, pad3 =
0x65}
to_sub = {dummy1 = 0x0, dummy2 = 0x0, dummy3 = 0, dummy4 = 0, dummy5 = 0, dummy6 =
0, dummy7 = 0, dummy8 = 0, dummy9 = 0, dummy10 = 0, dummy11 = 0, pad1 = -1223071913, pad2
= 0xbfe6e4ac, pad3 = 0x5}
signature = 0x8e80050 "s"
dbret = 3072116856
ret = -1223065022
#9 0xb72181fd in sbus_copy_iterator_value (from=0xbfe6e52c, to=0xbfe6e4f4) at
../src/sbus/interface/sbus_properties.c:264
basic = 0x3
dbret = 3071905225
element_type = 8
type = 101
ret = 0
__FUNCTION__ = "sbus_copy_iterator_value"
#10 0xb721809f in sbus_copy_iterator_container (from=0xbfe6e60c, to=0xbfe6e5d4, type=97)
at ../src/sbus/interface/sbus_properties.c:195
from_sub = {dummy1 = 0x8e8fd98, dummy2 = 0x600000, dummy3 = 2156, dummy4 =
149487064, dummy5 = 2, dummy6 = 149487064, dummy7 = 16, dummy8 = -1222850936, dummy9 = 16,
dummy10 = -1222736804, dummy11 = -1223085850,
pad1 = -1222850440, pad2 = 0xb71a383d <dbus_type_is_container+29>, pad3 =
0x61}
to_sub = {dummy1 = 0x8e87400, dummy2 = 0x4e00000, dummy3 = 221548, dummy4 =
149451840, dummy5 = 414, dummy6 = 149451840, dummy7 = 424, dummy8 = 424, dummy9 = 420,
dummy10 = 414, dummy11 = -1223085888, pad1 = 149487064,
pad2 = 0x1, pad3 = 0x6}
signature = 0x8e80038 "{sas}"
dbret = 1
ret = -1223065022
#11 0xb72181fd in sbus_copy_iterator_value (from=0xbfe6e60c, to=0xbfe6e5d4) at
../src/sbus/interface/sbus_properties.c:264
basic = 0x3
dbret = 3071905225
element_type = 101
type = 97
ret = 0
__FUNCTION__ = "sbus_copy_iterator_value"
#12 0xb721809f in sbus_copy_iterator_container (from=0xbfe6e6b8, to=0xbfe6e6f0, type=118)
at ../src/sbus/interface/sbus_properties.c:195
from_sub = {dummy1 = 0x8e8fd98, dummy2 = 0x600000, dummy3 = 108, dummy4 =
149487064, dummy5 = 1, dummy6 = 149487064, dummy7 = 8, dummy8 = -1222850984, dummy9 = 0,
dummy10 = -1222736804, dummy11 = -1222850440, pad1 = -1075386688,
pad2 = 0xb71a383d <dbus_type_is_container+29>, pad3 = 0x76}
to_sub = {dummy1 = 0x8e87400, dummy2 = 0x4e00000, dummy3 = 226924, dummy4 =
149451840, dummy5 = 419, dummy6 = 149451840, dummy7 = 420, dummy8 = 8, dummy9 = 0, dummy10
= 1, dummy11 = -1015883776, pad1 = 149496148, pad2 = 0x65,
pad3 = 0xb71910f9 <_dbus_header_cache_revalidate+9>}
signature = 0x8e847f0 "a{sas}"
dbret = 1
ret = 21
#13 0xb72181fd in sbus_copy_iterator_value (from=0xbfe6e6b8, to=0xbfe6e6f0) at
../src/sbus/interface/sbus_properties.c:264
basic = 0x15
dbret = 3071899049
element_type = 115
type = 118
ret = -1075386640
__FUNCTION__ = "sbus_copy_iterator_value"
#14 0xb721831d in sbus_copy_message_to_dictionary (name=0xb726e237
"extraAttributes", msg=0x8e8fd98, to=0x8e9214c) at
../src/sbus/interface/sbus_properties.c:308
entry = {dummy1 = 0x8e87400, dummy2 = 0x3e00000, dummy3 = 222572, dummy4 =
149420736, dummy5 = 4, dummy6 = 149451840, dummy7 = 412, dummy8 = 8, dummy9 = 0, dummy10 =
1, dummy11 = 149507240, pad1 = -1222538936, pad2 = 0x8e97d60,
pad3 = 0xb722d18c}
from = {dummy1 = 0x8e8fd98, dummy2 = 0x600000, dummy3 = 108, dummy4 = 149487004,
dummy5 = 21, dummy6 = 149487064, dummy7 = 0, dummy8 = -1222850792, dummy9 = 0, dummy10 =
-1222736804, dummy11 = 149507304, pad1 = 149519984,
pad2 = 0xb6efd889 <__GI___libc_free+9>, pad3 = 0xb71e1ef8}
dbret = 1
ret = 0
#15 0xb7218e74 in sbus_properties_getall_done (subreq=0x0) at
../src/sbus/interface/sbus_properties.c:658
state = 0x8e92138
req = 0x8e92058
ret = 0
__FUNCTION__ = "sbus_properties_getall_done"
#16 0xb71e81d3 in tevent_req_finish (req=0x8e94ce8, state=TEVENT_REQ_DONE,
location=0xb722d1e4 "../src/sbus/interface/sbus_properties.c:489") at
../tevent_req.c:162
No locals.
#17 0xb7218934 in sbus_properties_get_done (subreq=0x0) at
../src/sbus/interface/sbus_properties.c:489
state = 0x8e94dc8
req = 0x8e94ce8
ret = 0
#18 0xb71e81d3 in tevent_req_finish (req=0x8e97d60, state=TEVENT_REQ_DONE,
location=0xb726b014 "../src/responder/ifp/ifp_iface/sbus_ifp_invokers.c:852") at
../tevent_req.c:162
No locals.
#19 0xb72612c5 in _sbus_ifp_invoke_in__out_ifp_extra_step (ev=0x8e774f0, te=0x8e97ea0,
tv=..., private_data=0x8e97d60) at
../src/responder/ifp/ifp_iface/sbus_ifp_invokers.c:852
state = 0x8e97e40
subreq = 0xb71e81d3 <tevent_req_finish+99>
req = 0x8e97d60
ret = 0
```
With my limited knowledge of DBus I would says that some special handling of variable
arrarys might be needed in sbus_copy_iterator_container() because it tries to handle a
'{sas}' array but it calls dbus_message_iter_open_container() with the signature
"s" instead of "{sas}". Do I understand this correctly or can you see
something else in the backtrace? Do you need any other details?
@thalman, imo all this is unrelated to your patch.
bye,
Sumit
"""
See the full comment at
https://github.com/SSSD/sssd/pull/712#issuecomment-454451439