aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2023-07-18 13:58:54 +0200
committerHarald Welte <laforge@osmocom.org>2023-07-18 14:00:09 +0200
commit3dabaf363671cdad7b5f5e6250c16b920af607ea (patch)
tree6de492c771406806bd3516951374024188908365 /src
parent06ab6a991f1e2624c8c0490d5430b2cb88d6fb86 (diff)
proto_srv: Fix file descriptor and memory leak in error paths
Fixes: CID#307517 Change-Id: I44e349eee5b0b54843762db8cadd6b9b1758faa4
Diffstat (limited to 'src')
-rw-r--r--src/proto_srv.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/proto_srv.c b/src/proto_srv.c
index d6d3d17..2b85ac6 100644
--- a/src/proto_srv.c
+++ b/src/proto_srv.c
@@ -185,6 +185,7 @@ _e1dp_server_accept(struct osmo_fd *fd, unsigned int flags)
conn = talloc_zero(srv->ctx, struct osmo_e1dp_server_conn);
if (!conn) {
LOGP(DE1D, LOGL_ERROR, "Failed to create incoming connection.\n");
+ close(rc);
return -1;
}
@@ -197,6 +198,8 @@ _e1dp_server_accept(struct osmo_fd *fd, unsigned int flags)
if (osmo_fd_register(&conn->fd) != 0) {
LOGP(DE1D, LOGL_ERROR, "Failed to register incoming fd.\n");
+ close(conn->fd.fd);
+ talloc_free(conn);
return -1;
}