Using mprotect
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#define PAGESIZE 4096
#define BUFSIZE 10000
void testfn()
{
char buf[BUFSIZE + PAGESIZE + 1];
int i;
char *p = &buf[BUFSIZE];
p = (char *) (((int) p + PAGESIZE - 1) & ~(PAGESIZE - 1));
if (mprotect(p, 1024, PROT_READ)) {
perror("Couldn't mprotect");
exit(1);
}
for (i = 0; i < PAGESIZE; i++) {
buf[BUFSIZE + i] = i;
printf("buf[%d]=%d\n", i + BUFSIZE, buf[BUFSIZE + i]);
}
}
int main(void) {
testfn();
return EXIT_SUCCESS;
}
Recent Stories
Top DiscoverSDK Experts
Mendy Bennett
Experienced with Ad network & Ad servers.
Mobile | Ad Networks and 1 more
View Profile
Karen Fitzgerald
7 years in Cross-Platform development.
Mobile | Cross Platform Frameworks
View Profile
X
Compare Products
Select up to three two products to compare by clicking on the compare icon () of each product.
{{compareToolModel.Error}}Now comparing:
{{product.ProductName | createSubstring:25}} X
{{CommentsModel.TotalCount}} Comments
Your Comment