Arguably, I don't think leaking a malloc'ed `Error` would be a huge problem, but this is indeed beyond the current scope of this pull. So OK. An code comment would be welcome though.

Speaking of GC, won't this usage of a malloc'ed buffer run into (potential) trouble if the managed type has GC-dependent indirections? For example, if you create a `ScopeBuffer!string` ?

In regards to types with indirection, we'd have a catch-22 on our hands? If we use `GC.addRange`, then `ScopedBuffer` wouldn't be useable in a no-gc environment that wants to buffer pointers to malloc'ed data. But at the same time, if we don't use `GC.addRange`, then `ScopedBuffer` becomes un-useable in a "normal" GC environment that wants to buffer new'ed data (I'm thinking something like `splitPath`)... 

...right? I'm no GC expert.