On 16/11/12 12:02, David Sommerseth wrote:
> From: David Sommerseth <dav...@redhat.com>
> 
> This solves a SEGV situation when using the management API while OpenVPN
> is closing down.
> 
> The situation happens when the management socket has closed and OpenVPN
> tries to write an error about this to the management socket.  What happens
> is that
> 
>  virtual_output_callback_func() is called, which then calls
>  -> man_output_list_push_finalize()
>     -> man_output_standalone()
>        -> man_write()  <-- this does the socket write
>           -> man_io_error()
>              -> x_msg()
>                 -> virtual_output_print()
>                    -> virtual_output_callback_func() (recursion start)
> 
> virtual_output_callback_func() do have a mechanism to avoid recursion,
> but that did not keep the recurse counter when man_output_list_push_finalize()
> is called.
> 
> This patch just reorganise the recursion block to also keep the counter while
> calling the other functions from virtual_output_callback_func()
> 
> Signed-off-by: David Sommerseth <dav...@redhat.com>
> ---
>  src/openvpn/manage.c |   15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)

Applied to master and beta/2.3 branches

commit b2b66179f6dcc37de9582d5c3044f0357dda3df3 (master)
commit 5541ea21691b5b39adc4bd3e1ff1af86a050c71d (beta/2.3)
Author: David Sommerseth <dav...@redhat.com>
List-Post: openvpn-devel@lists.sourceforge.net
Date:   Fri Nov 16 12:02:06 2012 +0100

    Avoid recursion in virtual_output_callback_func()
    
    Signed-off-by: David Sommerseth <dav...@redhat.com>
    Acked-by: Gert Doering <g...@greenie.muc.de>
    Message-Id: 1353063726-25113-1-git-send-email-d...@users.sourceforge.net
    URL: http://article.gmane.org/gmane.network.openvpn.devel/7130


-- 
kind regards,

David Sommerseth

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to