aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmux.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@gnumonks.org>2017-09-12 12:44:53 +0200
committerPablo Neira Ayuso <pablo@gnumonks.org>2017-09-12 13:28:41 +0200
commit59941982083f7f0d6ab11f7bbb42c297a3fb8d69 (patch)
treedfdb654b4b960bec475bdee5c8f31af2f17eb0c1 /src/osmux.c
parent14af167a5553519d8164f4a21556888535eeefeb (diff)
src: _snprintf() helper functions nul-terminate buffers, if possible
This patch inconditionally initializes the buffer we get to nul-terminate it, whenever possible. It's a very simple solution to catch three overly corner cases: 1) snprintf() returns -1, very much unlikely in practise. 2) msg->len == 0: In such case, I would expect this function is never called with an empty message, but let's be safe in this case too. 3) If your buffer is empty, it doesn't nul-terminate the buffer. Change-Id: I97e517f2d98e83894ea707c63489559302ff6bd2
Diffstat (limited to 'src/osmux.c')
-rw-r--r--src/osmux.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/osmux.c b/src/osmux.c
index b18246f..7290d99 100644
--- a/src/osmux.c
+++ b/src/osmux.c
@@ -902,6 +902,9 @@ int osmux_snprintf(char *buf, size_t size, struct msgb *msg)
int msg_len = msg->len;
int ret;
+ if (size)
+ buf[0] = '\0';
+
while (msg_len > 0) {
if (msg_len < sizeof(struct osmux_hdr)) {
LOGP(DLMIB, LOGL_ERROR,