Thanks for your immediate reply. Now it is working fine.

On Friday, 20 April 2018 14:23:09 UTC+5:30, Ben Noordhuis wrote:
>
> On Fri, Apr 20, 2018 at 9:49 AM, Ramesh R <[email protected] <javascript:>> 
> wrote: 
> > Please find my full code on stack overflow, why it is crashed? please 
> give 
> > me a help. thanks... 
> > 
> https://stackoverflow.com/questions/49920982/libuv-udp-echo-server-regarding 
> > 
> > Segmentation fault happened. 
> > 
> > static void on_recv(uv_udp_t* handle, ssize_t nread, const uv_buf_t* 
> rcvbuf, 
> > const struct sockaddr* addr, unsigned flags) { 
> >     if(addr == NULL || nread == 0){ 
> >         printf("addr is null addr: [%p], nread: [%d]\n", addr, nread); 
> >         return; 
> >     } 
> > 
> >     printf("called next on rcv\n"); 
> >     if (nread > 0) { 
> >         printf("%lu\n",nread); 
> >         printf("%s",rcvbuf->base); 
> >     } 
> >     printf("free  :%lu %p handle:  %p \n",rcvbuf->len,rcvbuf->base, 
> handle); 
> >     free(rcvbuf->base); 
> > 
> >     uv_udp_send_t send_req; 
> >     char sender[17] = ""; 
> > 
> >     struct sockaddr snd_addr; 
> >     uv_buf_t sndbuf = uv_buf_init("PONG",4); 
> >     uv_ip4_name((const struct sockaddr_in*) addr, sender, 16); 
> >     fprintf(stderr, "Recv from %s\n", sender); 
> >     if(uv_udp_send(&send_req, handle, (const struct uv_buf_t *)&sndbuf, 
> 1, 
> > (const struct sockaddr *)addr, on_send)) 
> >     { 
> >         printf("error\n"); 
> >     } 
> >     printf("send success\n"); 
> >     return; 
> > } 
> > 
> > 
> > 
> > crashed status: 
> > ---------------------- 
> > 
> > Program received signal SIGSEGV, Segmentation fault. 
> > 0x0012af4a in uv__udp_run_completed (handle=0x80491a0) at 
> src/unix/udp.c:100 
> > 100     QUEUE_REMOVE(q); 
> > (gdb) bt 
> > #0  0x0012af4a in uv__udp_run_completed (handle=0x80491a0) at 
> > src/unix/udp.c:100 
> > #1  0x0012b111 in uv__udp_io (loop=0x132800, w=0x80491e0, revents=4) at 
> > src/unix/udp.c:146 
> > #2  0x0011da69 in uv__run_pending (loop=0x132800, mode=UV_RUN_DEFAULT) 
> at 
> > src/unix/core.c:778 
> > #3  uv_run (loop=0x132800, mode=UV_RUN_DEFAULT) at src/unix/core.c:360 
> > #4  0x08048bf2 in main (argc=1, argv=0xbffffa14) at test-udp.c:108 
> > (gdb) 
>
> Lifetime issue: you need to allocate `send_req` on the heap instead of 
> the stack. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/libuv.
For more options, visit https://groups.google.com/d/optout.

Reply via email to