diff options
author | Harald Welte <laforge@gnumonks.org> | 2012-05-31 20:58:57 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2012-05-31 20:58:57 +0200 |
commit | 346e531222a38bd0399e1a17f8de4a9594538993 (patch) | |
tree | fd5358381387b5df82644758735b22d84f67b354 /src/osmo-bts-sysmo/l1_transp_hw.c | |
parent | b18f00f162e1b7b3f3583e151b8a2091932c8708 (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.c | 7 |
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; } |