Internals,

I have gone through the PHP codebase (latest 5.2 CVS), looking for the use
of thread unsafe functions, and I found a number. I have virtually no
experience in the PHP codebase, so I can't guarantee there are no false
alarms in this, but I think the majority is valid. I noticed that
main/reentrancy.c provided in thread-safe versions of unsafe functions by
means of locking, which can be used when the thread-safe variant is not
available. These functions in reentrancy.c are not always used however.

Below follows all situations I could find. The only other functions I
checked besides those mentioned was asctime(), which showed no problems. If
you feel it's better for me to turn this into a bugreport (or many small
ones?), let me know and I will.

Kind regards,

Ron Korving

-------------------------------------------------

gmtime: (use gmtime_r)

ext/interbase/ibase_query.c on line 679
ext/pdo_sqlite/sqlite/src/date.c on line 948 (external code library)
sapi/thttpd_patch on lines 282, 1355, 2298


ctime: (use ctime_r)

ext/mime_magic/mime_magic.c on line 1759


localtime: (use localtime_r)

ext/com_dotnet/com_variant.c on line 818
ext/pdo_sqlite/sqlite/src/date.c on line 415 (external code library)
ext/sqlite/libsqlite/src/date.c on line 419 (external code library)
ext/xmlrpc/libxmlrpc/xmlrpc.c on line 234 (external code library)
ext/zip/lib/zip_dirent.c on lines 398, 525 (external code library)
sapi/thttpd_patch on line 2300 (external code library)


crypt: (use crypt_r)

ext/standard/crypt.c on line 149


rand: (use rand_r)

ext/mcrypt/mcrypt.c on line 1042
ext/soap/php_http.c on line 467
ext/sqlite/libsqlite/src/encode.c on lines 204, 213 (external code library)


readdir: (use readdir_r)

ext/pcre/pcrelib/pcregrep.c on line 261
main/streams/php_scandir.c on line 74

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to