If status is less than 0 though, we are not guaranteed that buf is cleanup-able, though.  Maybe it should segfault instead.