2014-06-02 23:28:44 |
Robert Ancell |
description |
Joining a AD-domain is extremely error-prone. You get segfaults every now and then. Random behaviour.
This problems is identified and corrected by upstream developer Stef Walter, and fixed in subsequent version realmd 0.15.1.
This is a stacktrace:
(gdb) backtrace full
#0 strlen () at ../sysdeps/x86_64/strlen.S:106
No locals.
#1 0x0000000000425896 in safe_asprintf (strp=strp@entry=0x7fffffffd2d0, format=format@entry=0x0) at safe-printf.c:265
cx = {data = 0x661000 "\240[f", length = 140737323792224, alloc = 8}
args = 0x674820
num_args = 3
va = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fffffffd2a0, reg_save_area = 0x7fffffffd1b0}}
ret = <optimized out>
i = <optimized out>
#2 0x0000000000421c8e in update_login_formats (self=0x7fffe8004e50) at realm-sssd.c:362
qualify = <optimized out>
kerberos = 0x7fffe8004e50
login_formats = {0x0, 0x0}
format = 0x0
domain_name = 0x676060 "openforce.org"
#3 realm_sssd_update_properties (self=0x7fffe8004e50) at realm-sssd.c:464
obj = 0x7fffe8004e50
my_name = <optimized out>
name = 0x676020 "`Ug"
section = 0x0
domains = 0x676060
i = <optimized out>
#4 0x0000000000421dd8 in realm_sssd_notify (obj=0x7fffe8004e50, spec=0x7fffe8004d80) at realm-sssd.c:505
No locals.
#5 0x00007ffff793b3b8 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#6 0x00007ffff794c557 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#7 0x00007ffff7954a29 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#8 0x00007ffff7954ce2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#9 0x00007ffff793f725 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#10 0x00007ffff793eff2 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#11 0x00007ffff79404d0 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#12 0x00007ffff79424c4 in g_object_new_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#13 0x00007ffff79428a4 in g_object_new () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#14 0x000000000041c71c in realm_provider_lookup_or_register_realm (self=0x65a5f0, realm_type=realm_type@entry=6749136,
realm_name=realm_name@entry=0x66f9f0 "openforce.org", disco=disco@entry=0x0) at realm-provider.c:380
realm = <optimized out>
unique_number = 1
provider_path = <optimized out>
escaped = 0x66fe40 "\001"
path = 0x66fed0 "/org/freedesktop/realmd/Sssd/openforce_org_1"
#15 0x00000000004236cb in realm_sssd_provider_constructed (obj=<optimized out>) at realm-sssd-provider.c:85
self = 0x65a5f0
realm_type = 6749136
domains = 0x66f940
type = 0x66f9d0 "ad"
name = 0x66f9f0 "openforce.org"
---Type <return> to continue, or q <return> to quit---
i = <optimized out>
#16 0x00007ffff794038a in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#17 0x00007ffff79424c4 in g_object_new_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#18 0x00007ffff79428a4 in g_object_new () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#19 0x0000000000423753 in realm_sssd_provider_new () at realm-sssd-provider.c:245
No locals.
#20 0x000000000040e9d5 in initialize_service (connection=0x65e070) at realm-daemon.c:182
all_provider = 0x65a310
provider = <optimized out>
__FUNCTION__ = "initialize_service"
#21 0x000000000040eb2e in on_bus_get_connection (source=<optimized out>, result=<optimized out>, unused=<optimized out>) at realm-daemon.c:243
flags = G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT
error = 0x0
connection = <optimized out>
owner_id = <optimized out>
#22 0x00007ffff7105ef7 in g_simple_async_result_complete () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#23 0x00007ffff7105f59 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#24 0x00007ffff766bce5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#25 0x00007ffff766c048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#26 0x00007ffff766c30a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#27 0x000000000040b70c in main (argc=1, argv=0x7fffffffe568) at realm-daemon.c:547
context = <optimized out>
error = 0x0
env = <optimized out>
path = <optimized out>
option_entries = {{long_name = 0x430c79 "debug", short_name = 100 'd', flags = 0, arg = G_OPTION_ARG_NONE,
arg_data = 0x646214 <service_debug>, description = 0x430e60 "Turn on debug output, prevent timeout exit", arg_description = 0x0}, {
long_name = 0x4341ce "install", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_STRING, arg_data = 0x646208 <service_install>,
description = 0x430e90 "Turn on installer mode, install to this prefix", arg_description = 0x0}, {long_name = 0x430c7f "dbus-peer",
short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_INT, arg_data = 0x646050 <service_dbus_fd>,
description = 0x430ec0 "Use a peer to peer dbus connection on this fd", arg_description = 0x0}, {long_name = 0x430c89 "replace",
short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x646210 <service_replace>,
description = 0x430ef0 "Replace a running realmd searvice", arg_description = 0x0}, {long_name = 0x0, short_name = 0 '\000',
flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0, arg_description = 0x0}}
(gdb) |
[Impact]
realmd crashes when using SSSD and full_name_format is not defined in sssd.conf. This is fixed in upstream 0.15.1 [1]
[Test Case]
1. Set up SSSD without defining full_name_format in sssd.conf
2. Set up realmd
3. Use realmd
Expected result:
realmd works
Observed result:
realmd crashes
[Regression Potential]
Low since this patch just tries a number of fallback cases so the format string is always defined. The patch came from upstream.
[1] http://cgit.freedesktop.org/realmd/realmd/commit/?id=761fc873a5089ecd9e95fc77511fa07338d05b44 |
|