On Tue, 2014-02-11 at 16:11 +0100, Zbigniew Jędrzejewski-Szmek wrote: > Printing of the three arguments is supposed to be conditional on the > same condtion (object != NULL). Anyway, in your backtrace:
Fair enough =) > #9 log_do_header (header=header@entry=0xbfeef2ec > "PRIORITY=6\nSYSLOG_FACILITY=3\nCODE_FILE=", level=level@entry=30, > file=file@entry=0x80e5c6e "src/core/manager.c", line=line@entry=1736, > func=func@entry=0x80e7556 <__func__.13183> "process_event", > object_name=object_name@entry=0x0, object=object@entry=0x0, size=2048) at > src/shared/log.c:445 > > ...they are both null, so the patch shouldn't change anything. True; the header contains: $23 = "PRIORITY=6\nSYSLOG_FACILITY=3\nCODE_FILE=", '\000' <repeats 1113 times>... by the time it crashes; so - presumably: file ? "CODE_FILE=" : "", file ? LINE_MAX : 0, file, /* %.0s means no output */ file ? "\n" : "", is near the badness, but ... No idea; dies in: #5 0xb74fb7c6 in _IO_vfprintf_internal (s=s@entry=0xbfeeee20, format=<optimized out>, format@entry=0x8117dec "PRIORITY=%i\nSYSLOG_FACILITY=%i\n%s%.*s%s%s %.*i%s%s%.*s%s%s%.*s%sSYSLOG_IDENTIFIER=%s\n", ap=0xbfeeef78 "V\216\021\b\326|\021\b\001", ap@entry=0xbfeeef64 "\006") at vfprintf.c:1629 1629 process_string_arg (((struct printf_spec *) NULL)); (gdb) l 1624 1625 /* Process current format. */ 1626 while (1) 1627 { 1628 process_arg (((struct printf_spec *) NULL)); 1629 process_string_arg (((struct printf_spec *) NULL)); 1630 1631 LABEL (form_unknown): 1632 if (spec == L_('\0')) 1633 { inside: (gdb) down #4 __strnlen_sse2 () at ../sysdeps/i386/i686/multiarch/strlen-sse2.S:125 125 pcmpeqb (%eax), %xmm0 an inlined strlen. All of the interesting process_string_arg variables are 'optimized out' which is a shame. Hey ho, Michael. -- michael.me...@collabora.com <><, Pseudo Engineer, itinerant idiot _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel