I found there are codes like following in elf_core_dump
for (addr = vma->vm_start;
addr < vma->vm_end;
addr += PAGE_SIZE) {
struct page *page;
struct vm_area_struct *vma;
if (get_user_pages(current, current->mm, addr, 1, 0, 1,
&page, &vma) <= 0) {
DUMP_SEEK(PAGE_SIZE);
} else {
does get_user_pages directly use page variable which is not
initialized is a bug?
thanks
Janboe
On Fri, Jun 29, 2007 at 01:03:06PM +0800, ye janboe wrote:
> if (get_user_pages(current, current->mm, addr, 1, 0,
> 1,
> &page, &vma) <= 0) {
> DUMP_SEEK(PAGE_SIZE);
> } else {
>
>
> does get_user_pages directly use page variable which is not
> initialized is a bug?
>
Why not look at mm/memory.c::get_user_pages and look at how it uses the
**pages argument? The fact that it is passing in the address of a
pointer to a struct page, along with the function name should be a big
hint as to what it is doing...
<spoiler>
more or less it is looking up the struct page pointer for the user address
passed in and returning it to the calling function via &page...
</spoiler>
Chees,
Kyle M