From: Pablo Neira Ayuso <[email protected]>

Holger reported a leak in the ipaccess_drop path. It seems I forgot
to call e1inp_line_put twice, one for the OML link and one for the
RSL link.

Note that, for some fully established A-bis IPA link, the refcnt
of the e1inp_line becomes two.
---
 src/input/ipaccess.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/input/ipaccess.c b/src/input/ipaccess.c
index 76d1994..44a5a59 100644
--- a/src/input/ipaccess.c
+++ b/src/input/ipaccess.c
@@ -250,7 +250,10 @@ static int ipaccess_drop(struct osmo_fd *bfd)
                ret = -ENOENT;
        }
        /* put the virtual E1 line that we cloned for this socket, if
-        * it becomes unused, it gets released. */
+        * it becomes unused, it gets released. We have to make it
+        * twice: once for the OML link and once for the RSL link
+        */
+       e1inp_line_put(line);
        e1inp_line_put(line);
        return ret;
 }
-- 
1.7.10.4


Reply via email to