aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-sysmo/l1_transp_hw.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-05-31 20:58:57 +0200
committerHarald Welte <laforge@gnumonks.org>2012-05-31 20:58:57 +0200
commit346e531222a38bd0399e1a17f8de4a9594538993 (patch)
treefd5358381387b5df82644758735b22d84f67b354 /src/osmo-bts-sysmo/l1_transp_hw.c
parentb18f00f162e1b7b3f3583e151b8a2091932c8708 (diff)
sysmobts: fix double-free if msgq cannot be opened
Diffstat (limited to 'src/osmo-bts-sysmo/l1_transp_hw.c')
-rw-r--r--src/osmo-bts-sysmo/l1_transp_hw.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/osmo-bts-sysmo/l1_transp_hw.c b/src/osmo-bts-sysmo/l1_transp_hw.c
index cde91eeb..a8f97bfe 100644
--- a/src/osmo-bts-sysmo/l1_transp_hw.c
+++ b/src/osmo-bts-sysmo/l1_transp_hw.c
@@ -156,7 +156,7 @@ int l1if_transport_open(struct femtol1_hdl *hdl)
if (rc < 0) {
LOGP(DL1C, LOGL_FATAL, "unable to open msg_queue: %s\n",
strerror(errno));
- goto out_free;
+ return rc;
}
ofd->fd = rc;
ofd->priv_nr = i;
@@ -167,7 +167,7 @@ int l1if_transport_open(struct femtol1_hdl *hdl)
if (rc < 0) {
close(ofd->fd);
ofd->fd = -1;
- goto out_free;
+ return rc;
}
}
for (i = 0; i < ARRAY_SIZE(hdl->write_q); i++) {
@@ -203,8 +203,7 @@ out_read:
close(hdl->read_ofd[i].fd);
osmo_fd_unregister(&hdl->read_ofd[i]);
}
-out_free:
- talloc_free(hdl);
+
return rc;
}