diff options
| author | vanhauser-thc <vh@thc.org> | 2022-08-06 09:07:49 +0200 |
|---|---|---|
| committer | vanhauser-thc <vh@thc.org> | 2022-08-06 09:07:49 +0200 |
| commit | 7b6ee28291c13e293c59489d4f2e37c78bad96fb (patch) | |
| tree | a2af51193282a240600031b05f1924d84f0a33fd /frida_mode/src/shm.c | |
| parent | 94fe62ad8db938757a3052f2041aef390e19c9a1 (diff) | |
| download | afl++-7b6ee28291c13e293c59489d4f2e37c78bad96fb.tar.gz | |
code format
Diffstat (limited to 'frida_mode/src/shm.c')
| -rw-r--r-- | frida_mode/src/shm.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/frida_mode/src/shm.c b/frida_mode/src/shm.c index 5b885b04..282526e8 100644 --- a/frida_mode/src/shm.c +++ b/frida_mode/src/shm.c @@ -16,24 +16,31 @@ #define ASHMEM_DEVICE "/dev/ashmem" void *shm_create(size_t size) { + int fd = -1; char ourkey[11] = {0}; - void * addr = MAP_FAILED; + void *addr = MAP_FAILED; struct ashmem_pin pin = {0, size}; fd = open(ASHMEM_DEVICE, O_RDWR); if (fd < 0) { FFATAL("Failed open /dev/ashmem: %d", errno); } if (snprintf(ourkey, sizeof(ourkey) - 1, "%d", IPC_PRIVATE) < 0) { + FFATAL("Failed to generate key: %d", errno); + } if (ioctl(fd, ASHMEM_SET_NAME, ourkey) < 0) { + FFATAL("ioctl(ASHMEM_SET_NAME) errno: %d\n", errno); + } if (ioctl(fd, ASHMEM_SET_SIZE, size) < 0) { + FFATAL("ioctl(ASHMEM_SET_SIZE) errno: %d\n", errno); + } addr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); @@ -46,9 +53,12 @@ void *shm_create(size_t size) { close(fd); return addr; + } + #else void *shm_create(size_t size) { + int shm_id = shmget(IPC_PRIVATE, size, IPC_CREAT | IPC_EXCL | S_IRUSR | S_IWUSR); if (shm_id < 0) { FFATAL("shm_id < 0 - errno: %d\n", errno); } @@ -61,12 +71,17 @@ void *shm_create(size_t size) { * dies. */ if (shmctl(shm_id, IPC_RMID, NULL) < 0) { + FFATAL("shmctl (IPC_RMID) < 0 - errno: %d\n", errno); + } /* Clear it, not sure it's necessary, just seems like good practice */ memset(addr, '\0', size); return addr; + } + #endif + |
