diff options
author | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2019-09-09 20:44:18 +0200 |
---|---|---|
committer | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2019-09-09 20:44:25 +0200 |
commit | a576156e5bf9de147efe2c76af1ee29f5efd773e (patch) | |
tree | a72f60f78cd4db77ce5d10d084b6d1c8e1e0fe27 /src | |
parent | c9df78f02b66513c6e831d81c3240a715fee7e70 (diff) | |
download | blogc-a576156e5bf9de147efe2c76af1ee29f5efd773e.tar.gz blogc-a576156e5bf9de147efe2c76af1ee29f5efd773e.tar.bz2 blogc-a576156e5bf9de147efe2c76af1ee29f5efd773e.zip |
common: prevent stdarg errors when format is NULL
Diffstat (limited to 'src')
-rw-r--r-- | src/common/error.c | 4 | ||||
-rw-r--r-- | src/common/utils.c | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/common/error.c b/src/common/error.c index 03695e7..caf47c3 100644 --- a/src/common/error.c +++ b/src/common/error.c @@ -26,6 +26,8 @@ bc_error_new(bc_error_type_t type, const char *msg) bc_error_t* bc_error_new_printf(bc_error_type_t type, const char *format, ...) { + if (format == NULL) + return bc_error_new(type, ""); va_list ap; va_start(ap, format); char *tmp = bc_strdup_vprintf(format, ap); @@ -40,6 +42,8 @@ bc_error_t* bc_error_parser(bc_error_type_t type, const char *src, size_t src_len, size_t current, const char *format, ...) { + if (format == NULL) + return bc_error_new(type, ""); va_list ap; va_start(ap, format); char *msg = bc_strdup_vprintf(format, ap); diff --git a/src/common/utils.c b/src/common/utils.c index 692d1ce..f686222 100644 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -138,6 +138,8 @@ bc_strndup(const char *s, size_t n) char* bc_strdup_vprintf(const char *format, va_list ap) { + if (format == NULL) + return NULL; va_list ap2; va_copy(ap2, ap); int l = vsnprintf(NULL, 0, format, ap2); @@ -159,6 +161,8 @@ bc_strdup_vprintf(const char *format, va_list ap) char* bc_strdup_printf(const char *format, ...) { + if (format == NULL) + return NULL; va_list ap; va_start(ap, format); char *tmp = bc_strdup_vprintf(format, ap); @@ -464,6 +468,8 @@ bc_string_append_printf(bc_string_t *str, const char *format, ...) { if (str == NULL) return NULL; + if (format == NULL) + return str; va_list ap; va_start(ap, format); char *tmp = bc_strdup_vprintf(format, ap); |