diff options
author | Matt Johnston <matt@ucc.asn.au> | 2022-04-01 12:10:48 +0800 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2022-04-01 12:10:48 +0800 |
commit | ddbbb46e96b2ce05aaae815d8f4b3c8879e812c4 (patch) | |
tree | 53e00144df088901d0ed4aeae293a54df79c18ef | |
parent | 47faf121174a9176ae4ec981b7069eabb06112bb (diff) | |
download | dropbear-ddbbb46e96b2ce05aaae815d8f4b3c8879e812c4.tar.gz |
Add m_snprintf() that won't return negative
-rw-r--r-- | dbutil.c | 13 | ||||
-rw-r--r-- | dbutil.h | 2 |
2 files changed, 15 insertions, 0 deletions
@@ -771,3 +771,16 @@ int fd_read_pending(int fd) { return FD_ISSET(fd, &fds); } } + +int m_snprintf(char *str, size_t size, const char *format, ...) { + va_list param; + int ret; + + va_start(param, format); + ret = vsnprintf(str, size, format, param); + va_end(param); + if (ret < 0) { + dropbear_exit("snprintf failed"); + } + return ret; +} @@ -73,6 +73,8 @@ void m_close(int fd); void setnonblocking(int fd); void disallow_core(void); int m_str_to_uint(const char* str, unsigned int *val); +/* The same as snprintf() but exits rather than returning negative */ +int m_snprintf(char *str, size_t size, const char *format, ...); /* Used to force mp_ints to be initialised */ #define DEF_MP_INT(X) mp_int X = {0, 0, 0, NULL} |