diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-08-19 16:44:00 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-08-19 16:44:00 +0200 |
commit | 7fad70c19806701decd1c958ab8001bf07c5f16d (patch) | |
tree | 01da8827caa0ba518009149070e705ab91e9637f /openbsc/src/libmsc/mncc_sock.c | |
parent | 901d57db07d21f8e7d7f4b11421f63c44c2b2600 (diff) | |
parent | 013ae46ef67ee560aeaa38e39936a1ae7e35232f (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.c | 9 |
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); |