It is a bit hard to see: The setkey programm uses the functions from this library. In pfkey_open, a socket is opened and returned to setkey. But setkey never closes it.

We already have wrappers around all of the "dangerous" functions that allocated resources. The wrappers register the resource allocation. If an application called with rtems_bsd_program_call_main_with_data_restore exits, it will close or free the resources.

There are some other functions in the pfkey that don't work well with that mechanism. Therefore I only added the one function that is responsible for the socket leak.

Note that it is a bit of a hack but it works. I have planned to replace the ipsec-tools with the tools from racoon2 soon to support newer encryption protocols. So I think it's a reasonable intermediate solution.

Best regards

Christian

Am 07.05.21 um 15:56 schrieb Joel Sherrill:
How does this fix a leak?

On Fri, May 7, 2021 at 7:09 AM Christian MAUDERER <christian.maude...@embedded-brains.de <mailto:christian.maude...@embedded-brains.de>> wrote:

    Note that I would like to push this patch on 5-freebsd-12 as well as on
    master.

    Best regards

    Christian


    Am 07.05.21 um 14:08 schrieb Christian Mauderer:
     > Fixes #4404
     > ---
     >   ipsec-tools/src/libipsec/pfkey.c | 7 +++++++
     >   1 file changed, 7 insertions(+)
     >
     > diff --git a/ipsec-tools/src/libipsec/pfkey.c
    b/ipsec-tools/src/libipsec/pfkey.c
     > index a621be12..385a21a9 100644
     > --- a/ipsec-tools/src/libipsec/pfkey.c
     > +++ b/ipsec-tools/src/libipsec/pfkey.c
     > @@ -1,5 +1,12 @@
     >   #include <machine/rtems-bsd-user-space.h>
     >
     > +#ifdef __rtems__
     > +/* Only need socket from rtems-bsd-program wrappers! */
     > +int
     > +rtems_bsd_program_socket(int domain, int type, int protocol);
     > +#define socket(domain, type, protocol) \
     > +    rtems_bsd_program_socket(domain, type, protocol)
     > +#endif /* __rtems__ */
     >   /*  $NetBSD: pfkey.c,v 1.21.2.1 2011/11/14 13:25:06 tteras Exp
    $    */
     >
     >   /*  $KAME: pfkey.c,v 1.47 2003/10/02 19:52:12 itojun Exp $  */
     >

-- --------------------------------------------
    embedded brains GmbH
    Herr Christian MAUDERER
    Dornierstr. 4
    82178 Puchheim
    Germany
    email: christian.maude...@embedded-brains.de
    <mailto:christian.maude...@embedded-brains.de>
    phone: +49-89-18 94 741 - 18
    fax:   +49-89-18 94 741 - 08

    Registergericht: Amtsgericht München
    Registernummer: HRB 157899
    Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
    Unsere Datenschutzerklärung finden Sie hier:
    https://embedded-brains.de/datenschutzerklaerung/
    <https://embedded-brains.de/datenschutzerklaerung/>
    _______________________________________________
    devel mailing list
    devel@rtems.org <mailto:devel@rtems.org>
    http://lists.rtems.org/mailman/listinfo/devel
    <http://lists.rtems.org/mailman/listinfo/devel>


--
--------------------------------------------
embedded brains GmbH
Herr Christian MAUDERER
Dornierstr. 4
82178 Puchheim
Germany
email: christian.maude...@embedded-brains.de
phone: +49-89-18 94 741 - 18
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to