Hello.
I faced a problem I can't solve by myself so I will be grateful for any help.
This code causes segfault:

#include <poll.h>
#include <pthread.h>

static void * thread_func (void *arg) {
    int count = 0;
    struct pollfd pfds[1] = { 0 };
    poll(pfds, count, 1000);
}

int main () {
    pthread_t thread;
    if (pthread_create(&thread, NULL, thread_func, NULL)) return 1;
    if (pthread_cancel(thread)) return 2;
    if (pthread_join(thread, NULL)) return 3;
    return 0;
}

This is how backtrace looks:

Thread 2 received signal SIG32.

Thread 2:
#0 0xb76b24f6 in __poll_nocancel (fds=0xb76a0414, nfds=0, timeout=1000) at libc/sysdeps/linux/common/poll.c:27 #1 0xb76b2585 in __GI_poll (fds=0xb76a0414, nfds=0, timeout=1000) at libc/sysdeps/linux/common/poll.c:208
#2 0x080484c3 in thread_func ()
#3 0xb77954b0 in start_thread (arg=0xb76ebba0) at libpthread/nptl/pthread_create.c:285
#4 0xb76fcae7 in clone () at libc/sysdeps/linux/i386/clone.S:103

Thread 1:
#0 0xb77996f1 in pthread_join (threadid=3077487520, thread_return=0x0) at libpthread/nptl/pthread_join.c:88
#1 0x08048522 in main ()

Architecture is i386.
Interesting thing is that segmentation fault only happens when uClibc-ng built with debug enabled (DODEBUG=y).

Thank you.

_______________________________________________
devel mailing list
[email protected]
https://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel

Reply via email to