[Gluster-devel] problem with recent change to glfs_realpath
obnox at samba.org
Thu Oct 20 23:15:50 UTC 2016
Anoop has brought to my attention that
recently glfs_realpath was changed in an incompatible way:
Previously, glfs_realpath returned an allocated string
that the caller would have to free with 'free'. Now after
the change, free segfaults on the returned string, and
the caller needs to call glfs_free.
That change makes no sense, imho, because the result from
a realpath implementation may be used by the application
using libgfapi, outside of the scope of the actual libgfapi
using code. E.g. in samba, the gfapi calls are hidden behind
the vfs api in the gluster backend. But the realpath result
is used outside the vfs module. I think this should be quite
normal a use case, and hence glfs_realpath should behave
as one would expect from a realpath implementation
(and as described in the realpath(3) manpage): return a string
that needs to be freed with 'free'...
Now for samba, after thorough discussion with Anoop and Rajesh,
we have proposed a fix/workaround by using the variant of
glfs_realpath that hands in a pre-allocated result string.
This renders us independent of the allocation method used by
glfs_realpath. But we wanted to point this out to the list, since
it is a potential problem for other users, too.
Cheers - Michael
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 163 bytes
Desc: not available
More information about the Gluster-devel