diff options
author | Harald Welte <laforge@osmocom.org> | 2021-11-25 15:35:50 +0100 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2021-11-25 15:52:26 +0100 |
commit | 9e34f08d0b649f9a40b79eb036bd23ecc5bd80d4 (patch) | |
tree | 4859e2de3c3faa60317b513e7785c1a9b670254e /include | |
parent | e352715eb1b589da9de25064de9e890075c56d0b (diff) |
gsmtap: Add gsmtap_sendmsg_free() as alternative to gsmtap_sendmsg()
gsmtap_sendmsg() places the burden of freeing the msgb in case of
erroneous return codes on the caller. A review of existing users
shows that this is overly optimistic and many calls get it wrong,
opening up memory leaks.
Let's add a new function gsmtap_sendmsg_free() which behaves like
gsmtap_sendmsg() but always takes ownership: Either it is sent + freed,
or it is just freed.
Change-Id: I106b09f2a49bf24ce0e8d11fd4d4ee93e9cafdf5
Related: OS#5329
Diffstat (limited to 'include')
-rw-r--r-- | include/osmocom/core/gsmtap_util.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/osmocom/core/gsmtap_util.h b/include/osmocom/core/gsmtap_util.h index e5643260..1cc8d75d 100644 --- a/include/osmocom/core/gsmtap_util.h +++ b/include/osmocom/core/gsmtap_util.h @@ -48,6 +48,7 @@ struct gsmtap_inst *gsmtap_source_init(const char *host, uint16_t port, int gsmtap_source_add_sink(struct gsmtap_inst *gti); int gsmtap_sendmsg(struct gsmtap_inst *gti, struct msgb *msg); +int gsmtap_sendmsg_free(struct gsmtap_inst *gti, struct msgb *msg); int gsmtap_send_ex(struct gsmtap_inst *gti, uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, |