linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* udev-131 strange segfault
@ 2008-11-07 12:07 Matthias Schwarzott
  2008-11-07 13:42 ` Kay Sievers
  2008-11-07 18:54 ` Matthias Schwarzott
  0 siblings, 2 replies; 3+ messages in thread
From: Matthias Schwarzott @ 2008-11-07 12:07 UTC (permalink / raw)
  To: linux-hotplug

Hi there!
I managed to let udev-131 segfault at startup.

I configured it like this:
CFLAGS="-Wall -ggdb" ./configure --prefix=/usr --sysconfdir=/etc --exec-prefix
Running it in gdb shows it segfaults at udev-rules.c:831

(gdb) run
Starting program: /tmp/udev-131/udev/udevd

Program received signal SIGSEGV, Segmentation fault.
0x0804ea06 in get_key (udev=0x9175008, line=0xafcdc8f0, key=0xafcdc5d8, 
op=0xafcdc5d0, value=0xafcdc5d4)
    at udev-rules.c:831
831             dbg(udev, "%s '%s'-'%s'\n", operation_str[*op], *key, *value);



Longer backtrace:
bt full
#0  0x0804ea06 in get_key (udev=0x807d008, line=0xafa7e690, key=0xafa7e378, 
op=0xafa7e370, value=0xafa7e374)
    at udev-rules.c:831
        linepos = 0xafa7e6f0 "block"
        temp = 0xafa7e6f6 ", ENV{MAJOR}=\"254\", ENV{MINOR}=\"0\", 
SYMLINK+=\"root\"\n"
#1  0x0804f02c in add_rule (rules=0x807d188, line=0xafa7e6e4 "SUBSYSTEM",
    filename=0x808c7f8 "/dev/.udev/rules.d/10-root-link.rules", 
filename_off=1, lineno=3) at udev-rules.c:1039
        key = 0xafa7e6e4 "SUBSYSTEM"
        value = 0xafa7e6f0 "block"
        op = OP_MATCH
        valid = 0
        linepos = 0xafa7e6e4 "SUBSYSTEM"
        attr = 0xa7dea6c0 "�8��"
        physdev = 0
        rule_tmp = {rules = 0x807d188, rule = {{type = 1 '\001', rule = {type 
= 1 '\001', flags = 0 '\0',
        token_count = 0, label_off = 0, filename_off = 1, filename_line = 3}, 
key = {type = 1 '\001',
        flags = 0 '\0', op = 0 '\0', glob = 0 '\0', value_off = 0, {attr_off = 
196609, ignore_error = 196609,
          i = 196609, rule_goto = 196609, mode = 196609, uid = 196609, gid = 
196609, num_fake_part = 196609,
          devlink_prio = 196609, event_timeout = 196609}}}}, token = {{{type = 
0 '\0', rule = {type = 0 '\0',
          flags = 0 '\0', token_count = 0, label_off = 0, filename_off = 0, 
filename_line = 0}, key = {
          type = 0 '\0', flags = 0 '\0', op = 0 '\0', glob = 0 '\0', value_off 
= 0, {attr_off = 0,
            ignore_error = 0, i = 0, rule_goto = 0, mode = 0, uid = 0, gid = 
0, num_fake_part = 0,
            devlink_prio = 0, event_timeout = 0}}}} <repeats 64 times>}, 
token_cur = 0}
        __FUNCTION__ = "add_rule"
#2  0x08050dd1 in parse_file (rules=0x807d188, 
filename=0x808c7f8 "/dev/.udev/rules.d/10-root-link.rules",
    filename_off=1) at udev-rules.c:1503
        key = 0xafa7e6e4 "SUBSYSTEM"
        len = 72
        f = (FILE *) 0x808b228
        first_token = 0
        line = "SUBSYSTEM\000=\"block\000, ENV{MAJOR}=\"254\", 
ENV{MINOR}=\"0\", SYMLINK+=\"root\"\n", '\0' <repeats 452 
times>, "u���A�ߧp\216\004\b\000\000\000\000\000\000\000\000Т��\002\000\000\000
(:��\030\213\004\b4\031���\017��l駯�����駯����", '\0' <repeats 17 
times>, "���", '\0' <repeats 12 
times>, "@�����\000^�\003\000\000�\a�\002\003\000\000\000\f�t>��\000\000\000\000\000\000\000"...


This is the rules file it seems to parse at that moment:

# Created by /lib/udev/write_root_link_rule
# This rule should create /dev/root as link to real root device.
SUBSYSTEM="block", ENV{MAJOR}="254", ENV{MINOR}="0", SYMLINK+="root"

Regards
Matthias


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: udev-131 strange segfault
  2008-11-07 12:07 udev-131 strange segfault Matthias Schwarzott
@ 2008-11-07 13:42 ` Kay Sievers
  2008-11-07 18:54 ` Matthias Schwarzott
  1 sibling, 0 replies; 3+ messages in thread
From: Kay Sievers @ 2008-11-07 13:42 UTC (permalink / raw)
  To: linux-hotplug

On Fri, Nov 7, 2008 at 13:07, Matthias Schwarzott <zzam@gentoo.org> wrote:
> I managed to let udev-131 segfault at startup.
>
> I configured it like this:
> CFLAGS="-Wall -ggdb" ./configure --prefix=/usr --sysconfdir=/etc --exec-prefix>
> Running it in gdb shows it segfaults at udev-rules.c:831
>
> (gdb) run
> Starting program: /tmp/udev-131/udev/udevd
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x0804ea06 in get_key (udev=0x9175008, line=0xafcdc8f0, key=0xafcdc5d8,
> op=0xafcdc5d0, value=0xafcdc5d4)
>    at udev-rules.c:831
> 831             dbg(udev, "%s '%s'-'%s'\n", operation_str[*op], *key, *value);

Adding "-O2" to the CFLAGS makes it work, right?

I guess the debug macro does not get "compiled-out" without
optimization and it tries to index operation_str[], which is just
nothing.

Thanks,
Kay

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: udev-131 strange segfault
  2008-11-07 12:07 udev-131 strange segfault Matthias Schwarzott
  2008-11-07 13:42 ` Kay Sievers
@ 2008-11-07 18:54 ` Matthias Schwarzott
  1 sibling, 0 replies; 3+ messages in thread
From: Matthias Schwarzott @ 2008-11-07 18:54 UTC (permalink / raw)
  To: linux-hotplug

On Freitag, 7. November 2008, Kay Sievers wrote:
> On Fri, Nov 7, 2008 at 13:07, Matthias Schwarzott <zzam@gentoo.org> wrote:
> > I managed to let udev-131 segfault at startup.
> >
> > I configured it like this:
> > CFLAGS="-Wall -ggdb" ./configure --prefix=/usr --sysconfdir=/etc
> > --exec-prefix> >
> > Running it in gdb shows it segfaults at udev-rules.c:831
> >
> > (gdb) run
> > Starting program: /tmp/udev-131/udev/udevd
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x0804ea06 in get_key (udev=0x9175008, line=0xafcdc8f0, key=0xafcdc5d8,
> > op=0xafcdc5d0, value=0xafcdc5d4)
> >    at udev-rules.c:831
> > 831             dbg(udev, "%s '%s'-'%s'\n", operation_str[*op], *key,
> > *value);
>
> Adding "-O2" to the CFLAGS makes it work, right?
>
Yes, this works.

Regards
Matthias

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-11-07 18:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-07 12:07 udev-131 strange segfault Matthias Schwarzott
2008-11-07 13:42 ` Kay Sievers
2008-11-07 18:54 ` Matthias Schwarzott

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).