Because it is store on-stack. This means that if any other function will use that portion of stack (and it will certainly do) - it will overwrite the contents of the structure.
On Wed, Apr 19, 2017 at 7:06 PM, Florent Cabret <[email protected]> wrote: > Why is it unsafe ? > Imagine that the memory become invalid (the original stack is > destroyed...) it would only trigger SEH. > The only unsafe things would be an overwrite of the stack but even malloc > can't prevent overwrite. > > Le jeudi 20 avril 2017 00:56:40 UTC+2, Fedor Indutny a écrit : >> >> Hm... perhaps my comment wasn't stated as clear as it could be. >> >> This is *definitely* unsafe, you'll run into problems with this code >> eventually. >> >> On Wed, Apr 19, 2017 at 6:53 PM, Florent Cabret <[email protected]> >> wrote: >> >>> Its not that easy I think gcc use main thread stack as memory (as you >>> can see with the little memcpy coded as rep movsd). >>> Moreover I don't need to worry about free at all. >>> >>> Le jeudi 20 avril 2017 00:50:31 UTC+2, Fedor Indutny a écrit : >>>> >>>> This sounds unsafe and dangerous. I wouldn't recommend running this >>>> code anywhere at all. >>>> >>>> On Wed, Apr 19, 2017 at 6:47 PM, Florent Cabret <[email protected]> >>>> wrote: >>>> >>>>> Actually I find a dirty trick to use the stack xD >>>>> >>>>> Le mardi 18 avril 2017 22:13:03 UTC+2, Thiago Arruda a écrit : >>>>>> >>>>>> It is not a matter or initializing uv_tcp_t before uv_run, the >>>>>> problem is you passing stack-allocated on a function that is itself >>>>>> invoked >>>>>> by libuv. >>>>>> >>>>>> On Tue, Apr 18, 2017 at 5:01 PM Florent Cabret <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> You mean uv_connect_t ? because I understand from you answer than I >>>>>>> must do uv_tcp_init before uv_run. >>>>>>> >>>>>>> >>>>>>> Le mardi 18 avril 2017 21:59:27 UTC+2, Thiago Arruda a écrit : >>>>>>> >>>>>>>> I can see you are still allocating things on the stack via >>>>>>>> callbacks invoked by libuv(line 43), that will never work >>>>>>>> >>>>>>>> On Tue, Apr 18, 2017 at 4:54 PM Florent Cabret < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>> Still doesn't work after the advice provided by Fedor and Thiago. >>>>>>>>> >>>>>>>>> >>>>>>>>> Le mardi 18 avril 2017 19:27:03 UTC+2, Florent Cabret a écrit : >>>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> I dont know what is wrong with my code but it trigger a memory >>>>>>>>>> exception in uv_process_tcp_connect_req at line req->cb(req, >>>>>>>>>> uv_translate_sys_error(err)); where it call a random address. >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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. >>>>>>>>> >>>>>>>> -- >>>>>>> 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. >>>>>>> >>>>>> -- >>>>> 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. >>>>> >>>> >>>> >> -- > 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. > -- 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.
