jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-e1d/+/35609?usp=email )
Change subject: Prevent memory leaks / double free of msgb in proto_clnt.c
......................................................................
Prevent memory leaks / double free of msgb in proto_clnt.c
Change-Id: Ic0c4c06ba7c1a405ec3c73100fe9e8476f4f5512
---
M src/proto_clnt.c
1 file changed, 24 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/09/35609/1
diff --git a/src/proto_clnt.c b/src/proto_clnt.c
index 854b958..cfa9ca2 100644
--- a/src/proto_clnt.c
+++ b/src/proto_clnt.c
@@ -190,10 +190,13 @@
}
rc = osmo_e1dp_send(&clnt->ctl_fd, msgb, -1);
- if (rc < 0)
+ if (rc < 0) {
+ msgb_free(msgb);
return rc;
+ }
msgb_free(msgb);
+ msgb = NULL;
/* Response */
int flags = fcntl(clnt->ctl_fd.fd, F_GETFL, 0);
@@ -386,8 +389,10 @@
if (rc)
return rc;
- if (msgb_l2len(msgb) != sizeof(struct osmo_e1dp_line_info))
+ if (msgb_l2len(msgb) != sizeof(struct osmo_e1dp_line_info)) {
+ msgb_free(msgb);
return -EPIPE;
+ }
msgb_free(msgb);
@@ -417,6 +422,11 @@
if (rc)
return rc;
+ if (msgb_l2len(msgb) != 0) {
+ msgb_free(msgb);
+ return -EPIPE;
+ }
+
msgb_free(msgb);
return 0;
@@ -449,8 +459,10 @@
if (rc)
return rc;
- if ((tsfd < 0) || (msgb_l2len(msgb) != sizeof(struct osmo_e1dp_ts_info)))
+ if ((tsfd < 0) || (msgb_l2len(msgb) != sizeof(struct osmo_e1dp_ts_info))) {
+ msgb_free(msgb);
return -EPIPE;
+ }
msgb_free(msgb);
--
To view, visit
https://gerrit.osmocom.org/c/osmo-e1d/+/35609?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-e1d
Gerrit-Branch: master
Gerrit-Change-Id: Ic0c4c06ba7c1a405ec3c73100fe9e8476f4f5512
Gerrit-Change-Number: 35609
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-MessageType: newchange