Projects
Selected software, hardware, and research prototypes.
-
Memory safety with no additional metadata
The Chromium team has developed BackupRefPtr, which seeks to deterministically enforce temporal memory safety. I developed an extension to BackupRefPtr to also deterministically enforce spatial memory safety (e.g., to mitigate buffer overflows). It does not require storing any additional metadata beyond what the underlying allocator already uses, although it is stateful due to needing the allocator metadata to be loaded during spatial safety checks. It operates by checking that the pointer stays within valid bounds any time the pointer is updated.
-
Touchless dispensing with a photoresistor sensor and a PWM-controlled servo
-
Using Intel MPX or segmentation to harden SafeStack
Configuring MPX bounds registers or 32-bit segment registers and extending LLVM and Clang to instrument code to help prevent corruption of the safe stacks.
-
HTTP-controlled MIDI alert bell connected via Ethernet
Based on Contiki OS with the lightweight X86 protection domain support that I implemented.
-
Python X10 CM19A driver (unofficial)
Unofficial driver for the X10 CM19A remote control interface in Python, now maintained by Burns Fisher.
-
X86 lightweight protection domain support for Contiki
Memory management based on paging, software-switched segments, or hardware task switching.