Safefree() not so safe?

[email protected] (Calle Dybedahl)
Newsgroups perl.xs
Organization Not much
Message-ID <[email protected]>
Hi.

The perlapi manpage has this to say about Safefree():

   The XSUB-writer's interface to the C "free" function.

So I've been using it instead of a plain free() pretty consistently, and
everything seemed to work just fine. Until I uploaded my module to CPAN,
and it started getting tested on operating systems that I normally don't
run. In particular, OpenBSD. Where my code started dumping core. After
bringing up an OpenBSD VM and experimenting for some time, I've found
that replacing Safefree() with a plain free() makes the coredumps stop.

Obviously, I have missed something. My current hypothesis is that the
problem was that I used Safefree() on memory that wasn't allocated by
one of the corresponding [mc]alloc() wrappers, but instead returned by a
third-party library function. I haven't yet tried to dig into the perl
source code to see if this is the case, but I haven't found anything
about it in the documentation. Is there some place I've missed? Are
there other functions I should also be wary about using?

-- 
		     Calle Dybedahl <[email protected]>
		 http://www.livejournal.com/users/cdybedahl/
   "Don't shoot now! There's good porn playing inside my head!" -- babycola
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.