[OpenVPN home] [Date Prev] [Date Index] [Date Next]
[OpenVPN mailing lists] [Thread Prev] [Thread Index] [Thread Next]
Google
 
Web openvpn.net

Re: [Openvpn-users] v2.0 hangs


  • Subject: Re: [Openvpn-users] v2.0 hangs
  • From: "James Yonan" <jim@xxxxxxxxx>
  • Date: Thu, 6 May 2004 04:54:53 -0000

Timo Sirainen <tss@xxxxxx> said:

> On 5.5.2004, at 23:07, Timo Sirainen wrote:
> 
> > c->c2.tls_multi looks garbage, so it's probably freed already? I could 
> > try running it with valgrind if it helps..

Aha!  You are right, there is a bug in close_instance() in 2.0-test26.

do_close_tls is executed first then do_close_remove_env, but the former closes
tls_multi while the latter references it under certain circumstances.

The fix is to rearrange the function ordering so do_close_remove_env gets
called before do_close_tls.

I will fix in the next 2.0 test release.

> Oh, that was easy.
> 
> ==3026== Conditional jump or move depends on uninitialised value(s)
> ==3026==    at 0x40269EAD: ssl3_get_finished (in 
> /usr/lib/i686/cmov/libssl.so.0.9.7)
> 1431)
> ==2945==    by 0x8056C17: close_instance (init.c:1638)
> ==2945==    by 0x805D366: tunnel_point_to_point (openvpn.c:87)
> ==2945==    by 0x805D5B7: main (openvpn.c:163)
> ==2945==  Address 0x41B3E398 is 272 bytes inside a block of size 1648 
> free'd
> ==2945==    at 0x4002F710: free (vg_replace_malloc.c:186)
> ==2945==    by 0x8056390: do_close_tls (init.c:1330)
> ==2945==    by 0x8056B95: close_instance (init.c:1625)
> ==2945==    by 0x805D366: tunnel_point_to_point (openvpn.c:87)
> ==2945==    by 0x805D5B7: main (openvpn.c:163)
> 
> do_close_tls() frees the multi but it's used after that. What's the 
> correct fix? :)
> 
> Valgrind showed a few others too:
> 
> ==3026== Conditional jump or move depends on uninitialised value(s)
> ==3026==    at 0x4002496B: strlen (mac_replace_strmem.c:162)
> ==3026==    by 0x804BA02: string_alloc (buffer.c:341)
> ==3026==    by 0x806E279: verify_callback (ssl.c:510)
> ==3026==    by 0x40322BE4: (within 
> /usr/lib/i686/cmov/libcrypto.so.0.9.7)
> 
> ==3026== Syscall param socketcall.sendto(msg) contains uninitialised or 
> unaddressable byte(s)
> ==3026==    at 0x40466456: __libc_sendto (in /lib/libc-2.3.2.so)
> ==3026==    by 0x805D3A1: tunnel_point_to_point (openvpn.c:81)
> ==3026==    by 0x805D5B7: main (openvpn.c:163)
> ==3026==  Address 0x41B417F6 is 98 bytes inside a block of size 1579 
> alloc'd
> ==3026==    at 0x4002EFF2: malloc (vg_replace_malloc.c:160)
> ==3026==    by 0x804B36A: alloc_buf (buffer.c:54)
> ==3026==    by 0x8068491: reliable_init (reliable.c:236)
> ==3026==    by 0x806F642: key_state_init (ssl.c:1106)
> ==3026==    by 0x806F957: tls_session_init (ssl.c:1216)
> ==3026==    by 0x806FD62: tls_multi_init_finalize (ssl.c:1361)
> ==3026==    by 0x8055863: do_init_finalize_tls_frame (init.c:947)
> ==3026==    by 0x8056A47: init_instance (init.c:1539)
> ==3026==    by 0x805D323: tunnel_point_to_point (openvpn.c:49)
> ==3026==    by 0x805D5B7: main (openvpn.c:163)
> 
> And lots of problems inside libcrypto. I'm not sure if they're real or 
> not.

These tend to look like false alarms.

James


____________________________________________
Openvpn-users mailing list
Openvpn-users@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/openvpn-users


Warning: require_once(../../../archive_common.php) [function.require-once]: failed to open stream: No such file or directory in /home/openvpn/domains/openvpn.net/public_html/archive/openvpn-users/2004-05/msg00030.html on line 246

Fatal error: require_once() [function.require]: Failed opening required '../../../archive_common.php' (include_path='/usr/local/lib/php') in /home/openvpn/domains/openvpn.net/public_html/archive/openvpn-users/2004-05/msg00030.html on line 246