On Wed, Jul 07, 2010 at 12:14:16PM -0700, Steven Dake wrote: >> But, you surely could not have seen a bug on Linux that was caused by >> this - so why was this patch prepared?
> We redefine all the non-thread-safe posix calls in our package (such as > readdir) to assert(0). This prevents their usage in our app. The > reason we do this is to prevent plugin developers from writing plugins > that use non-thread-safe posix APIs. Our app is portable, where the > glibc semantics you describe above are not present. POSIX is blank on > this issue, and was addressed in readdir_r. Well, if you are already creating wrappers, wouldn't it be better to provide wrappers that provide the glibc functionality on platforms you port to that don't already do that, rather than forbid a perfectly functional, and thread safe, call? FWIW, I've always considered readdir_r to be broken, you pass in a buffer without passing in a size and hope everything works out. Your proposed patch to libibverbs is also not-portable because it uses NAME_MAX, not pathconf.. Sigh POSIX. I guess, as a general question, do you know of any libc implementations that actually use a static buffer for readdir and would require readdir_r to function properly? Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html