On Friday, 24 May 2019 at 13:30:05 UTC, ag0aep6g wrote:
On Friday, 24 May 2019 at 13:13:12 UTC, Atila Neves wrote:
Thanks for this. I think the only violation is calling
`stringz` on `Z`, and that was due to a poorly designed DbI
check on being able to call `stringz`. Allocating generally
isn't @system, and freeing is ok to trust since vector is
taking care of it for us. I've pushed a fix.
I think you're missing the point. When your function is marked
as @safe or @trusted, then any execution of a user-provided
@system function is a safety violation.
My `puts`s might not do any harm, but they could just as well
be buffer overflows.
Could you please give an example of how @system allocator code
could do that?