This is the mail archive of the libffi-discuss@sourceware.org mailing list for the libffi project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libffi & fork


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]