summaryrefslogtreecommitdiffstats
path: root/libnetdata/libnetdata.c
diff options
context:
space:
mode:
authorEmmanuel Vasilakis <mrzammler@mm.st>2022-05-18 17:15:13 +0300
committerGitHub <noreply@github.com>2022-05-18 17:15:13 +0300
commit7e29d5a90896c777d823c46a232fb0edf4f4525e (patch)
tree374e539abdbf855ad53fe7fc30be721416a28b79 /libnetdata/libnetdata.c
parent1edfe043708f6fca3b7d9cc578bf876ccf7a1c8e (diff)
Prevent command_to_be_logged from overflowing (#12947)
* prevent command_to_be_logged from overflowing * dont access with size
Diffstat (limited to 'libnetdata/libnetdata.c')
-rw-r--r--libnetdata/libnetdata.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/libnetdata/libnetdata.c b/libnetdata/libnetdata.c
index 69e1d1cf78..5929d976f9 100644
--- a/libnetdata/libnetdata.c
+++ b/libnetdata/libnetdata.c
@@ -1111,14 +1111,13 @@ char *fgets_trim_len(char *buf, size_t buf_size, FILE *fp, size_t *len) {
}
int vsnprintfz(char *dst, size_t n, const char *fmt, va_list args) {
+ if(unlikely(!n)) return 0;
+
int size = vsnprintf(dst, n, fmt, args);
+ dst[n - 1] = '\0';
- if (unlikely((size_t) size > n)) {
- // truncated
- size = (int)n;
- }
+ if (unlikely((size_t) size > n)) size = (int)n;
- dst[size] = '\0';
return size;
}