about summary refs log tree commit diff
diff options
context:
space:
mode:
authorrealmadsci <71108352+realmadsci@users.noreply.github.com>2021-03-12 14:46:49 -0500
committerrealmadsci <71108352+realmadsci@users.noreply.github.com>2021-03-15 12:07:22 -0700
commit281cd47c154e7cd642e76482f5f07e9f1584c561 (patch)
treeb6805618727e8b180ae5c707c8dd4d71c7eaeaa5
parent01ad0f3c6a45e28eb99e7076f97af2e2a9516c45 (diff)
downloadafl++-281cd47c154e7cd642e76482f5f07e9f1584c561.tar.gz
libqasan: Add checks for read() and write()
-rw-r--r--qemu_mode/libqasan/hooks.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/qemu_mode/libqasan/hooks.c b/qemu_mode/libqasan/hooks.c
index 9c406c74..0e6c3e08 100644
--- a/qemu_mode/libqasan/hooks.c
+++ b/qemu_mode/libqasan/hooks.c
@@ -51,6 +51,7 @@ ssize_t write(int fd, const void *buf, size_t count) {
   void *rtv = __builtin_return_address(0);
 
   QASAN_DEBUG("%14p: write(%d, %p, %zu)\n", rtv, fd, buf, count);
+  QASAN_LOAD(buf, count);
   ssize_t r = __lq_libc_write(fd, buf, count);
   QASAN_DEBUG("\t\t = %zd\n", r);
 
@@ -63,6 +64,7 @@ ssize_t read(int fd, void *buf, size_t count) {
   void *rtv = __builtin_return_address(0);
 
   QASAN_DEBUG("%14p: read(%d, %p, %zu)\n", rtv, fd, buf, count);
+  QASAN_STORE(buf, count);
   ssize_t r = __lq_libc_read(fd, buf, count);
   QASAN_DEBUG("\t\t = %zd\n", r);