Re: Understanding NULL pointer dereference

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

 





On Fri, Jun 18, 2010 at 10:47 AM, vinit dhatrak <vinit.dhatrak@xxxxxxxxx> wrote:
On Fri, Jun 18, 2010 at 10:11 AM, Prasad Joshi <prasadjoshi124@xxxxxxxxx> wrote:
> Hi All,
>
> I am trying to understand a a kernel oops report. Here are some of the
> fields from the report
>
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000034
> Oops: 0000 [#1] SMP
> Pid: 6478, comm: cp Tainted: P 2.6.31.5-127.fc12.x86_64 #1 Inspiron 1525
> RIP: 0010:[<ffffffff810faac1>] [<ffffffff810faac1>] do_sys_open+0x7a/0x10f
> CR2: 0000000000000034
>
> As I know, when a page fault occurs, the address the program attempted to
> access is stored in the CR2 register. So probably the pointer is pointing to
> address 0034 and is being access.
>
> The BUG string is bit confusing, it says NULL pointer dereference at 0034, I
> know the address 00034 is not valid but why is it interpreted as NULL
> pointer? The NULL pointer as I know should point to address 0.
>
> Thanks and Regards,
> Prasad
>

Hi Prasad,

I think its mostly a case when you have some struct with a pointer as
a member which is after 0x34 bytes. Now compiler generate addresses
for member variables like (base address of struct) + offset (here
0x34). So in your case, base pointer is NULL and you are trying to
access one the members of that struct.

Correct me if I am wrong here.


Thanks Vinit for your reply. I am trying to figure out what has happened, your inputs would certainly help. I will update the thread once I have more information.

Thanks and Regards,
Prasad
 
-Vinit


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux