From: Christian Brauner Date: Thu, 11 Feb 2021 09:14:34 +0000 (+0100) Subject: string_utils: add wrapper for snprintf() X-Git-Tag: lxc-5.0.0~292^2~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=66efb199f75a49c13246d760e894bd0f4891e5ce;p=thirdparty%2Flxc.git string_utils: add wrapper for snprintf() This let's us avoid the tedious if (ret < 0 || (size_t)ret >= sizeof(buf)) style of error checking. Signed-off-by: Christian Brauner --- diff --git a/src/lxc/string_utils.h b/src/lxc/string_utils.h index a489cac44..dd086cee7 100644 --- a/src/lxc/string_utils.h +++ b/src/lxc/string_utils.h @@ -140,4 +140,13 @@ static inline bool strequal(const char *str, const char *eq) return strcmp(str, eq) == 0; } +#define strnprintf(buf, buf_size, ...) \ + ({ \ + int __ret_strnprintf; \ + __ret_strnprintf = snprintf(buf, buf_size, ##__VA_ARGS__); \ + if (__ret_strnprintf < 0 || (size_t)__ret_strnprintf >= buf_size) \ + __ret_strnprintf = ret_errno(EIO); \ + __ret_strnprintf; \ + }) + #endif /* __LXC_STRING_UTILS_H */