valid address space ?

Abu Rasheda rcpilot2010 at gmail.com
Mon Feb 25 00:37:48 EST 2013


On Sunday, February 24, 2013, Abu Rasheda wrote:

> I am trying to dump some kernel data structure (walk e.g. task or file
> data structure  on x86_64 arch). Sometime accessing through a pointer,
> pointer may not be NULL, but pointing to invalid address due to garbage
> value.
>
> What I am looking for is range of address which are valid for kernel
> data structure. Is it correct to say following address are valid ?
>
> - Bit 0 - 47 are considered
> - Between FFFF8000'00000000 through FFFFFFFF'FFFFFFFF
>

Will this cover all situations

 if (long_ptr > 0x1000)
  {
   tmp_long_ptr = ((long_ptr & 0x800000000000) ? (long_ptr |
0xffff800000000000) : (long_ptr & 0xFFFFFFFFFFFF));
printf("tmp_long_ptr :0x%llx\n", (long long int) tmp_long_ptr);
   if ((long_ptr == tmp_long_ptr) & (long_ptr >= 0x30000000))
      printf("valid 64 addr\n");
  }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130224/b8a6e457/attachment.html 


More information about the Kernelnewbies mailing list