Got a local retrace which is better:

--- stack trace ---
#0  0x00000000004044d8 in process_dev (devname=0x0) at hdparm.c:1826
        fd = 3
        err = 52
        parm = 0
        multcount = 0
        id = 0x0
#1  0x0000000000406d29 in main (_argc=<value optimized out>, _argv=<value 
optimized out>) at hdparm.c:2399
        no_more_flags = 0
        disallow_flags = 0
        c = <value optimized out>
        name = "\1\0\0\0}0\264,0\344@", '\0' <repeats 13 times>, 
";\...@\0\0\0\0"
--- thread stack trace ---
.
Thread 1 (Thread 3074):
#0  0x00000000004044d8 in process_dev (devname=0x0) at hdparm.c:1826
        fd = 3
        err = 52
        parm = 0
        multcount = 0
        id = 0x0
#1  0x0000000000406d29 in main (_argc=<value optimized out>, _argv=<value 
optimized out>) at hdparm.c:2399
        no_more_flags = 0
        disallow_flags = 0
        c = <value optimized out>
        name = "\1\0\0\0}0\264,0\344@", '\0' <repeats 13 times>, 
";\...@\0\0\0\0"
--- source code stack trace ---
#0  0x00000000004044d8 in process_dev (devname=0x0) at hdparm.c:1826
  1821:                 }
  1822:         }
  1823:         if (get_apmmode) {
  1824:                 id = get_identify_data(fd, id);
  1825:                 printf(" APM_level      = ");
  1826:                 if((id[83] & 0xc008) == 0x4008) {
  1827:                         if (id[86] & 0x0008)
  1828:                                 printf("%u\n", id[91] & 0xff);
  1829:                         else
  1830:                                 printf("off\n");
  1831:                 } else
#1  0x0000000000406d29 in main (_argc=<value optimized out>, _argv=<value 
optimized out>) at hdparm.c:2399
  2394:         while (argc--) {
  2395:                 argp = *argv++;
  2396:                 if (no_more_flags || argp[0] != '-') {
  2397:                         if (!num_flags_processed)
  2398:                                 do_defaults = 1;
  2399:                         process_dev(argp);
  2400:                         continue;
  2401:                 }
  2402:                 if (0 == strcmp(argp, "--")) {
  2403:                         no_more_flags = 1;
  2404:                         continue;

So clearly id == NULL here, and id[83] crashes.

** Changed in: hdparm (Ubuntu)
   Importance: Undecided => High

** Changed in: hdparm (Ubuntu)
     Assignee: (unassigned) => Canonical Foundations Team 
(canonical-foundations)

** Also affects: hdparm (Ubuntu Karmic)
   Importance: High
     Assignee: Canonical Foundations Team (canonical-foundations)
       Status: Confirmed

-- 
hdparm crashed with SIGSEGV in __libc_start_main()
https://bugs.launchpad.net/bugs/396837
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to