On Fri, 2010-07-30 at 13:08 -0400, Oren Laadan wrote: > We use clone and eclone directly and not through glibc, therefore > must explicitly care about thread-safety of malloc. > > This patch removes the use of malloc in ckpt_msg() and instead > allocate a buffer on the stack. Also convert calls to strerr() to > to calls to strerr_r() which are thread-safe. Well, strerror_r is safe only for code that uses glibc/libpthread interfaces to create threads, right? Furthermore, strerror_r has different behaviors depending on whether you're using the XSI- or GNU-specified version. My local strerror(3) man page says: "The GNU-specific strerror_r() returns a pointer to a string containing the error message. This may be either a pointer to a string that the function stores in buf, or a pointer to some (immutable) static string (in which case buf is unused)." And I'm seeing garbage output from ckpt_perror() with this patch applied, implying that the GNU version is in use and that it is electing not to modify the supplied buffer. Surely strerror(errno) is "good enough" for error paths? _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers