I guess it's OK then. The opengroup man page I looked at only says
> If resolved_name is a null pointer, the behavior of realpath() is implementation-defined.

If your manpage explicitly talks about ```free``` and doesn't mention any special cases then it should be fine.

Checking whether an address is GC-owned is possible IIRC, but in this case realpath can only return the pointer we passed to it so it would be sufficient to check ```absolutePath == buffer.ptr```. But as said above it's probably not necessary.