On 6/9/05, Ludovic Drolez <[EMAIL PROTECTED]> wrote:
So it seems to say that pthread_create tried to use a freed block and that this block has been freed at tftpd.c:736 ?
Yes. The bug is as follows: new = calloc(1, sizeof(thread_data)); ... pthread_create(&new->tid, ..., new); At this point it is indeterminate which thread goes first -- the "current" one or the "new" one. If the "new" thread runs to *completion* (including the free(data) on line 736) *before* the "current" thread had a chance to write new->tid, then you'll have the bug which VG cought for you: writing to now dangling memory. Cheers, Paul Pluzhnikov -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

