summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-11-26 09:27:04 +0100
committerHarald Welte <laforge@gnumonks.org>2016-11-26 09:27:46 +0100
commit34260c892390c6831a0a5fb906bc3bffcfd08896 (patch)
tree7e229a0569c6267aeb008f0b24cc9d6f8a0a368a
parentinput/ipaccess.c: Check return value of osmo_fd_register() (diff)
downloadlibosmo-abis-34260c892390c6831a0a5fb906bc3bffcfd08896.tar.xz
libosmo-abis-34260c892390c6831a0a5fb906bc3bffcfd08896.zip
osmo_rtp_socket_fdreg(): Check return value of osmo_fd_register()
Change-Id: I4969e0a9e7109d426066e6c2b80ed44c396b65b5 Fixes: Coverity CID 57631
-rw-r--r--src/trau/osmo_ortp.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c
index e7c6fc4..51829d1 100644
--- a/src/trau/osmo_ortp.c
+++ b/src/trau/osmo_ortp.c
@@ -211,6 +211,8 @@ static int osmo_rtcp_fd_cb(struct osmo_fd *fd, unsigned int what)
static int osmo_rtp_socket_fdreg(struct osmo_rtp_socket *rs)
{
+ int rc;
+
rs->rtp_bfd.fd = rtp_session_get_rtp_socket(rs->sess);
rs->rtcp_bfd.fd = rtp_session_get_rtcp_socket(rs->sess);
rs->rtp_bfd.when = rs->rtcp_bfd.when = BSC_FD_READ;
@@ -218,8 +220,15 @@ static int osmo_rtp_socket_fdreg(struct osmo_rtp_socket *rs)
rs->rtp_bfd.cb = osmo_rtp_fd_cb;
rs->rtcp_bfd.cb = osmo_rtcp_fd_cb;
- osmo_fd_register(&rs->rtp_bfd);
- osmo_fd_register(&rs->rtcp_bfd);
+ rc = osmo_fd_register(&rs->rtp_bfd);
+ if (rc < 0)
+ return rc;
+
+ rc = osmo_fd_register(&rs->rtcp_bfd);
+ if (rc < 0) {
+ osmo_fd_unregister(&rs->rtp_bfd);
+ return rc;
+ }
return 0;
}