From 90518bfc8415adccc7d89bc7b57723be7b5e488b Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Sun, 10 Feb 2019 00:36:34 +0100 Subject: Return of snprintf is not the number of written bytes --- Process.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'Process.c') diff --git a/Process.c b/Process.c index d6e30ee7..54c41af4 100644 --- a/Process.c +++ b/Process.c @@ -414,11 +414,16 @@ void Process_writeField(Process* this, RichString* str, ProcessField field) { if (indent & (1U << i)) maxIndent = i+1; for (int i = 0; i < maxIndent - 1; i++) { - int written; + int written, ret; if (indent & (1 << i)) - written = snprintf(buf, n, "%s ", CRT_treeStr[TREE_STR_VERT]); + ret = snprintf(buf, n, "%s ", CRT_treeStr[TREE_STR_VERT]); else - written = snprintf(buf, n, " "); + ret = snprintf(buf, n, " "); + if (ret < 0 || ret >= n) { + written = n; + } else { + written = ret; + } buf += written; n -= written; } -- cgit v1.2.3