tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: one time crash in usb_allocmem_flags



On 02/09/14 19:48, Alexander Nasonov wrote:
Hi,

I was running current amd64 (last updated few weeks ago) when I got
a random crash shortly after switching to X mode. If my analysis is
correct, it crashed in usb_allocmem_flags inside this loop:

         LIST_FOREACH(f, &usb_frag_freelist, next) {
                 KDASSERTMSG(usb_valid_block_p(f->block, &usb_blk_fraglist),
                     "%s: usb frag %p: unknown block pointer %p",
                      __func__, f, f->block);
                 if (f->block->tag == tag)
                         break;
         }

It couldn't access f->block->tag. I wasn't actively using any of
the usb devices at that time. I wonder if it's a known problem or
should I file a PR? Details of the analysis is below.

Please fill a PR so it doesn't get forgotten about.

At first glance it doesn't look like that usb_frag_freelist isn't protected correctly. I looks more like random corruption. What was the value of %edx?

Thanks,
Nick



Home | Main Index | Thread Index | Old Index