Messages in this thread | | | Date | Fri, 21 Oct 2005 11:11:24 -0400 | From | "Vincent W. Freeh" <> | Subject | Re: Understanding Linux addr space, malloc, and heap |
| |
Arjan van de Ven wrote: > On Fri, 2005-10-21 at 09:45 -0400, Vincent W. Freeh wrote: > >>Thanks for your quick response. It basically confirmed that I observed >>what I thought I did. However, I am no closer to solving my problem. I >>cannot mprotect data that I malloc beyond the first 65 pages. > > > you can't mprotect malloc() memory period ..
Actually, I can and do. Simple program at end.
> >> Why is >>that? Can that be fixed? Second, why does mprotect silently fail? I >>could live with it failing--but I cannot deal with a call the "works" >>but doesn't work. > > > need more info :) >
I call mprotect and it return 0--meaning it succeeded. But the permissions on the page remain rw. So it fails to change the permissions, but doesn't give any indication of this.
Thanks, vince.
------------------ #include <stdio.h> #include <stdlib.h> #include <sys/mman.h> #include <unistd.h>
int main(int argc, char *argv[]) { void *p; int pgsize = getpagesize();
p = malloc(1024); mprotect((void*)((unsigned)p & ~(pgsize-1)), 1024, PROT_NONE); printf("\t*p = %d\n", *(int *)p); return 0; } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |