« Return to Thread: libffi & fork

Re: libffi & fork

by Gaash Hazan-3 :: Rate this Message:

| View in Thread

> There is, as far as I can see, only one way to remedy this: allow
> python to map anonymous memory with both write and execute permission.
> Then it should work fine.
>

I believe memory allocation is a service provided by the OS and not by
the application or interpreter. Python does not provide memory
allocation service to libffi. In this case libffi creates
read-write-exec memory block using mmap to a tmp file. I guess the
problem is common to libff users and it is not unique to python.

libffi uses mmap with MAP_SHARED at libffi:closures.c:dlmap(). What
was the reason for using MAP_SHARED  in the first place?

I think MAP_PRIVATE would create the desired behavior of copy-on-write
when forked. Would that be a proper fix?

Gaash

 « Return to Thread: libffi & fork