sigsegv in g_main_poll()


this is reproduceable:

rocks# gtk-config --version

(gdb) r
Starting program: /home/alfi/c/gIDE/gide
Unable to connect to server port 35091
This generally means that the program could not talk to the esound server

** WARNING **: Could not open globassoc config file: /home/alfi/.gide/glob
dummy handler called: 17
table_rassoc(): Not Implemented!

Program received signal SIGSEGV, Segmentation fault.
0x4015b400 in g_main_poll (timeout=-1, use_priority=0, priority=0)
    at gmain.c:985
985           pollrec->fd->revents = fd_array[i].revents;
(gdb) print *pollrec
Cannot access memory at address 0x0.

it seems to happen, after leaving this function..(i'm forking a child,
and catching SIGCHLD in the parent process):

void sigchld_handler( gint signal )
        gint status;
        udata *update_data;

        g_print( "dummy handler called: %d\n", signal );

        update_data = table_lookup( wait( &status ) );

        g_return_if_fail( update_data != NULL );

        table_rassoc( update_data );

        /* remove timeout */
        gdk_input_remove( update_data->input_id );

        /* unlink named pipe */
        unlink( update_data->filename );


        /* free memory */
        g_free( update_data->filename );
        g_free( update_data );

what am i doing wrong? any ideas?


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]