[libvirt] PATCH: 15/25: Prohibit non-threadsafe POSIX apis
Daniel Veillard
veillard at redhat.com
Fri Jan 16 13:44:16 UTC 2009
On Tue, Jan 13, 2009 at 05:44:51PM +0000, Daniel P. Berrange wrote:
> There are a huge list of functions in POSIX which are not
> safe to use from multiple threads currently. I generated
> the list by looking at all libc symbol exports for variants
> which have a parallel _r symbol.
>
> nm -D --defined-only /lib/libc.so.6 \
> | grep '_r$' \
> | awk '{print $3}' \
> | grep -v __ \
> | grep -v qsort \
> | grep -v readdir \
> | sort \
> | uniq \
> | sed -e 's/_r//'
>
> The qsort one is a red herring, since you only need qsort_r if
> you need to pass a extra 'void * opaque' data blob to your sort
> function - we don't, so don't need qsort_r.
>
> The readdir one is also unneccessary, since reading from a single
> DIR* is safe from a single thread. readdir_r is also horrific
>
> http://womble.decadentplace.org.uk/readdir_r-advisory.html
>
>
> This patch adds a 'make sc_prohibit_nonrentrant' rule to the
> 'syntax-check' for these forbidden functions.
Cool, good idea ! +1
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list