By liran bh | 5/16/2016 | Linux User Space

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;
}

{{CommentsModel.TotalCount}} Comments

Your Comment

{{CommentsModel.Message}}

Recent Stories

Top DiscoverSDK Experts

User photo
3355
Ashton Torrence
Web and Windows developer
GUI | Web and 11 more
View Profile
User photo
3220
Mendy Bennett
Experienced with Ad network & Ad servers.
Mobile | Ad Networks and 1 more
View Profile
User photo
3060
Karen Fitzgerald
7 years in Cross-Platform development.
Mobile | Cross Platform Frameworks
View Profile
Show All
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
Compare Now