A couple of changes collected over the last year
[oftpd.git] / BUGS
1 $Id$
2
3 - On Solaris, new POSIX threads cannot be created from a chroot() jail!
4   pthread_create() uses mmap() on /dev/mem (or something like that) to
5   create the stack for new threads.  However, in a chroot() jail, no
6   /dev files are visible (hopefully).  It would still be possible to
7   support Solaris by using malloc() and specifying the stack explicitly,
8   but then there's the hassle of cleaning up this memory and so on.
9   Yuck.  So for now, no Solaris.  In 0.5.x I expect to support Solaris
10   again, as I'll only need a very small number of threads.
11
12 - The pthread_cancel() does not actually meet POSIX compliance.  It is 
13   forbidden to use PTHREAD_CANCEL_ASYNCHRONOUS on anything that makes
14   system calls.  This seems to work fine on Linux, probably due to its
15   bizarre thread model.  This will also be fixed on 0.3.x, as I'll pay
16   careful attention to cancel points.
17
18 - Probable memory leak when pthread_cancel() operates on a thread that
19   has allocated memory (in glob() for instance).  Need to disable cancel 
20   for appropriate regions of code.
21
22 - Doesn't handle permissions properly.  If a file is world-readable but 
23   not group-readable and someone in the group tries to read it they
24   should not be allowed, apparently.  :(
25