X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Futils%2Fcommon%2Fcommon.c;h=e986da813ad79d85da3cc5f5def0d18430af95fc;hp=d15f9b7c771c708d5e30b00f90d253ffc1e58e08;hb=abaa1c8a24e8eff5632dd6052b1da5f6535caf19;hpb=47a8c3f0893a4ad8ef8f690ae0bd496ef55dcdcd diff --git a/src/utils/common/common.c b/src/utils/common/common.c index d15f9b7c..e986da81 100644 --- a/src/utils/common/common.c +++ b/src/utils/common/common.c @@ -89,6 +89,22 @@ char *sstrncpy(char *dest, const char *src, size_t n) { return dest; } /* char *sstrncpy */ +/* ssnprintf returns zero on success, one if truncation occurred + and a negative integer onerror. */ +int ssnprintf(char *str, size_t sz, const char *format, ...) { + va_list ap; + va_start(ap, format); + + int ret = vsnprintf(str, sz, format, ap); + + va_end(ap); + + if (ret < 0) { + return ret; + } + return (size_t)ret >= sz; +} /* int ssnprintf */ + char *ssnprintf_alloc(char const *format, ...) /* {{{ */ { char static_buffer[1024] = "";