OpenBSD’s omalloc: Bug and buffer overflow detection

For quite a long time now, OpenBSD has, among numerous exploit mitigation techniques, had a very strict mmap()-based malloc() implementation. Recently re-written by Otto Moerbeek, it is even harsher now. I find that this feature makes OpenBSD one of the best platforms to develop C programs on. If you have a double-free, use-after-free, off-by-one, or [...]

Automatically fetch and checksum OpenBSD snapshots

I run OpenBSD on all my machines. I think its a great operating system with excellent range of features and all the components fit together nicely. One of my favourite things about OpenBSD is the highly aggressive release schedule. While a stable release is cut every 6 months, Theo is producing complete, full builds of [...]

Unworkable 0.4 released

I have just tagged, packaged and announced version 0.4 of my BitTorrent implementation, Unworkable. Here are the release notes: Implemented sending peer keep-alives. Trace log now contains timestamps. Make us more tolerant of intermittent tracker failures. Added support for Arch Linux. Fixed an off-by-four bug which could cause segfaults on some platforms. Fix zero padding [...]

Decoupled Python GUI Construction, or BitTorrent visualisation

While in general I appreciate very simple, no-nonsense user interfaces for applications that work efficiently on the console and so can be used via SSH, there are times when increased visualisation is very useful. Specifically with regard to my BitTorrent client, Unworkable, the default user interface is exceedingly simple. Inspired by the ubiquitous scp program [...]

Unworkable 0.3 released

I have just tagged, packaged and announced version 0.3 of my BitTorrent implementation, Unworkable. My goal with Unworkable is to make releases frequently – hopefully twice a month or so – with incremental improvements each release. The hope is that each release should be of a higher quality than the last. Therefore I try to [...]