diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2019-01-13 15:17:03 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2019-01-13 15:17:03 -0500 |
commit | 1504d4c98a1633f692dfa043f2b2ce2c3b250218 (patch) | |
tree | 5d32634bb50e0d19a48c0be88902e9fbe8fbc3ac /include/linux | |
parent | 5f7dd4b4b25d542712078d769cf69e87bb5e152a (diff) |
check for errors from pthread_create()
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/printk.h | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/include/linux/printk.h b/include/linux/printk.h index 4e29af49..8f8dd6b9 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -21,23 +21,27 @@ static inline int vscnprintf(char *buf, size_t size, const char *fmt, va_list args) { - int i = vsnprintf(buf, size, fmt, args); - ssize_t ssize = size; + int i; - return (i >= ssize) ? (ssize - 1) : i; + i = vsnprintf(buf, size, fmt, args); + + if (likely(i < size)) + return i; + if (size != 0) + return size - 1; + return 0; } static inline int scnprintf(char * buf, size_t size, const char * fmt, ...) { - ssize_t ssize = size; - va_list args; - int i; + va_list args; + int i; - va_start(args, fmt); - i = vsnprintf(buf, size, fmt, args); - va_end(args); + va_start(args, fmt); + i = vscnprintf(buf, size, fmt, args); + va_end(args); - return (i >= ssize) ? (ssize - 1) : i; + return i; } #define printk(...) printf(__VA_ARGS__) |