aboutsummaryrefslogtreecommitdiff
path: root/frida_mode/src/shm.c
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2022-08-06 09:07:49 +0200
committervanhauser-thc <vh@thc.org>2022-08-06 09:07:49 +0200
commit7b6ee28291c13e293c59489d4f2e37c78bad96fb (patch)
treea2af51193282a240600031b05f1924d84f0a33fd /frida_mode/src/shm.c
parent94fe62ad8db938757a3052f2041aef390e19c9a1 (diff)
downloadafl++-7b6ee28291c13e293c59489d4f2e37c78bad96fb.tar.gz
code format
Diffstat (limited to 'frida_mode/src/shm.c')
-rw-r--r--frida_mode/src/shm.c17
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
+