From 80c05002991bb2444e0b7dd53eb8957d68fafa3d Mon Sep 17 00:00:00 2001 From: jfreegman Date: Mon, 28 Aug 2017 18:26:52 -0400 Subject: [PATCH] Fix formatting bug caused by strings containing \r --- src/misc_tools.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/misc_tools.c b/src/misc_tools.c index ccba40c..635d0cd 100644 --- a/src/misc_tools.c +++ b/src/misc_tools.c @@ -372,14 +372,22 @@ on_error: return len; } -/* copies data to msg buffer. +/* copies data to msg buffer, removing return characters. returns length of msg, which will be no larger than size-1 */ size_t copy_tox_str(char *msg, size_t size, const char *data, size_t length) { - size_t len = MIN(length, size - 1); - memcpy(msg, data, len); - msg[len] = '\0'; - return len; + size_t i; + size_t j = 0; + + for (i = 0; (i < length) && (j < size - 1); ++i) { + if (data[i] != '\r') { + msg[j++] = data[i]; + } + } + + msg[j] = '\0'; + + return j; } /* returns index of the first instance of ch in s starting at idx.