[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: rawhide report: 20060822 changes



Tim Waugh wrote:
On Thu, 2006-08-24 at 11:58 +0200, Erwin Rol wrote:

I see that here too on X86_64 but i didn't see it on i386 (that i didn't see it doesn't mean it doesn't happen :-).

Your backtrace is a different one than I'd been expected from bug
#203784, so might not be fixed in 1.2.2-15.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 46912568808784 (LWP 11520)]
0x00002aaaac73f610 in context_range_get () from /lib64/libselinux.so.1
(gdb) bt
#0  0x00002aaaac73f610 in context_range_get () from /lib64/libselinux.so.1

It would be great if you could 'up' and 'info locals' at that point.

I think the following code is the problem;

1600          printercon = 0;
1601          printerfile = strstr(p->device_uri, "/dev/");
1602
1603          if (printerfile != NULL)
1604          {
1605            if (getfilecon(printerfile, &devcon) == -1)
1606 cupsdLogMessage(CUPSD_LOG_ERROR, "cupsdSetPrinterAttrs: Unable to get printer context");
1607            else
1608              printercon = context_new(devcon);
1609
1610            if (context_range_get(printercon))
1611              rangestr = strdup(context_range_get(printercon));
1612          }

The call on line 1605 fails with -1, and so the context_new(devcon) on line 1608 is never called, and that resultets in (context_range_get(printercon)) on line 1610 to be called with a NULL parameter, wich it apparently doesn't like.

Starting program: /usr/sbin/cupsd -f
[Thread debugging using libthread_db enabled]
[New Thread 46912568808784 (LWP 11961)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 46912568808784 (LWP 11961)]
*context_range_get_internal (context=0x0) at context.c:182
182         def_get(range, COMP_RANGE)
(gdb) bt
#0  *context_range_get_internal (context=0x0) at context.c:182
#1 0x000055555558e815 in cupsdSetPrinterAttrs (p=0x5555557c6bc0) at printers.c:1610
#2  0x000055555558f875 in cupsdLoadAllPrinters () at printers.c:920
#3  0x000055555556de80 in cupsdReadConfiguration () at conf.c:1100
#4 0x00005555555736c5 in main (argc=<value optimized out>, argv=0x7fffcb394ad8) at main.c:429
(gdb) info locals
No locals.
(gdb) up
#1 0x000055555558e815 in cupsdSetPrinterAttrs (p=0x5555557c6bc0) at printers.c:1610
1610            if (context_range_get(printercon))
(gdb) info locals
valptr = <value optimized out>
attrptr = <value optimized out>
i = <value optimized out>
length = <value optimized out>
uri = "hal:///org/freedesktop/Hal/devices/usb_device_3f0_317_00CNC2651689_if0_printer_noserial\000% x\n 1 index neg\t\t% loopval\n 1 add\t\t% 1 - loopval\n 3 index\t\t% height\n 0�8��\177\000\000% height\a\000\000\000\000\000\000\000loopval)"... resource = "/printers/lj1200\000rjet-1200--1\000the entire distance\n show\t\t\t\t% Show the string\n} bind def\n/NUMBER {\t\t\t% Draw a number\n\t\t\t\t% power n NUMBER -\n 1 index 1 eq {\t\t% power ==��{UUU\000\000 o{UUU\000\000p�8��\177\000\000p�8��\177\000\000"... filename = "/etc/cups/ppd/hp-laserjet-1200--1.ppd\000pyright 1993-2005 Easy Software Products\n%\n% These coded instructions, statements, and computer programs are the\n% property of Easy Software Products and are "...
num_media = <value optimized out>
auth = <value optimized out>
auth_supported = <value optimized out>
ppd = <value optimized out>
input_slot = <value optimized out>
media_type = <value optimized out>
page_size = <value optimized out>
output_bin = <value optimized out>
media_quality = <value optimized out>
duplex = <value optimized out>
ppdattr = <value optimized out>
attr = (ipp_attribute_t *) 0x5555557c7500
val = <value optimized out>
num_finishings = <value optimized out>
finishings = {IPP_FINISHINGS_NONE, 1852727650, 1881174629, 543516513, 544370534}
option = <value optimized out>
audit_message = 0x0
printerfile = <value optimized out>
rangestr = <value optimized out>
devcon = 0x312e3120746e6972 <Address 0x312e3120746e6972 out of bounds>
printercon = (context_t) 0x0
sides = {0x5555555a1f2d "one-sided", 0x5555555a1f19 "two-sided-long-edge", 0x5555555a1ef5 "two-sided-short-edge"}
(gdb) up
#2  0x000055555558f875 in cupsdLoadAllPrinters () at printers.c:920
920             cupsdSetPrinterAttrs(p);
(gdb) info locals
fp = (cups_file_t *) 0x5555557bf6e0
linenum = 33
line = "</Printer>\000\000stop-printer\0000\0003...\000/Hal/devices/usb_device_3f0_317_00CNC2651689_if0_printer_noserial\000\016\033\000\000\000\000��8��\177\000\000��8��\177\000\000�:\225��*\000\000\000\000\000\000\000\000\000\000h�zUUU\000\000�Ts��138\031vR��*\000\000��\225��*\000\0000lR��*\000\000\000\000\000\000\001\000\000\000q\000\000\000\001\000\000\000\020\000\000\0000\000\000\000"...
value = 0x0
valueptr = 0x5555557c70a8 "�x{UUU"
p = (cupsd_printer_t *) 0x5555557c6bc0
(gdb)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]