Re: [next-20130227] kernel NULL pointer dereference [ watchdog | perf related ? ]

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

 



On Wed, Feb 27, 2013 at 4:07 PM, Tejun Heo <tj@xxxxxxxxxx> wrote:
> Replying here too just in case.
>
> On Wed, Feb 27, 2013 at 02:08:40PM +0100, Sedat Dilek wrote:
>> >> static inline void *idr_find(struct idr *idr, int id)
>> >> {
>> >>         struct idr_layer *hint = rcu_dereference_raw(idr->hint);
>> >>     86d7:       48 8b 05 00 00 00 00    mov    0x0(%rip),%rax        # 86de <perf_init_event+0x2e>
>> >>                         86da: R_X86_64_PC32     .bss+0xfc
>> >>
>> >>         if ((id & ~IDR_MASK) == hint->prefix)
>> >>     86de:       89 f2                   mov    %esi,%edx
>> >>     86e0:       30 d2                   xor    %dl,%dl
>> >>     86e2:       3b 10                   cmp    (%rax),%edx              <--- trapping insn
>> >>     86e4:       74 4a                   je     8730 <perf_init_event+0x80>
>> >>                 return rcu_dereference_raw(hint->ary[id & IDR_MASK]);
>> >>
>> >>
>> >> So 'hint' is NULL as RAX above confirms and we're not supposed to deref
>> >> NULL things.
>> >>
>> >> Looking at 29cf29e1fbb875019713eb55cf27ec35f1e5fa5e, Tejun should
>> >> probably know. CCed.
>
> Fix was posted some days ago.
>
>   http://thread.gmane.org/gmane.linux.kernel.next/26213
>
> I got Andrew's patch added to -mm message a week ago.  Not sure why it
> still hasn't showed up.  Andrew, any ideas?
>
> Thanks.
>
> --
> tejun

AFAICS the updated (correct) patch "idr: implement lookup hint" is now
in mainline.

- Sedat -

[1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=0ffc2a9c8072969253a20821c2c733a2cbb4c7c7
--
To unsubscribe from this list: send the line "unsubscribe linux-next" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux