aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc/mncc_sock.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-08-19 16:44:00 +0200
committerHarald Welte <laforge@gnumonks.org>2011-08-19 16:44:00 +0200
commit7fad70c19806701decd1c958ab8001bf07c5f16d (patch)
tree01da8827caa0ba518009149070e705ab91e9637f /openbsc/src/libmsc/mncc_sock.c
parent901d57db07d21f8e7d7f4b11421f63c44c2b2600 (diff)
parent013ae46ef67ee560aeaa38e39936a1ae7e35232f (diff)
Merge branch 'master' of git.osmocom.org:openbsc
Diffstat (limited to 'openbsc/src/libmsc/mncc_sock.c')
-rw-r--r--openbsc/src/libmsc/mncc_sock.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/openbsc/src/libmsc/mncc_sock.c b/openbsc/src/libmsc/mncc_sock.c
index 5ef9922d2..d8caf0754 100644
--- a/openbsc/src/libmsc/mncc_sock.c
+++ b/openbsc/src/libmsc/mncc_sock.c
@@ -165,6 +165,13 @@ static int mncc_sock_write(struct osmo_fd *bfd)
bfd->when &= ~BSC_FD_WRITE;
+ /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
+ if (!msgb_length(msg)) {
+ LOGP(DMNCC, LOGL_ERROR, "message type (%d) with ZERO "
+ "bytes!\n", mncc_prim->msg_type);
+ goto dontsend;
+ }
+
/* try to send it over the socket */
rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
if (rc == 0)
@@ -176,6 +183,8 @@ static int mncc_sock_write(struct osmo_fd *bfd)
}
goto close;
}
+
+dontsend:
/* _after_ we send it, we can deueue */
msg2 = msgb_dequeue(&net->upqueue);
assert(msg == msg2);