diff options
author | David Wragg <david@rabbitmq.com> | 2010-07-27 19:36:36 +0100 |
---|---|---|
committer | David Wragg <david@rabbitmq.com> | 2010-07-27 19:36:36 +0100 |
commit | 4f30d164910f88f181489f591c0957317142da01 (patch) | |
tree | 2efeabc9c912f7471c0a0cf95d06a5544c7ac1a0 /tools | |
parent | a39a656ffb1a72b031aa586a37ff77b39939b6fb (diff) | |
download | rabbitmq-c-github-ask-4f30d164910f88f181489f591c0957317142da01.tar.gz |
Free heap-allocated error strings
Even though we are about to exit anyway.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/common.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/tools/common.c b/tools/common.c index 1d8fbd8..2a640be 100644 --- a/tools/common.c +++ b/tools/common.c @@ -77,10 +77,11 @@ void die(const char *fmt, ...) void die_errno(int err, const char *fmt, ...) { + va_list ap; + if (err == 0) return; - va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); @@ -90,14 +91,17 @@ void die_errno(int err, const char *fmt, ...) void die_amqp_error(int err, const char *fmt, ...) { + va_list ap; + char *errstr; + if (err <= 0) return; - - va_list ap; + va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); - fprintf(stderr, ": %s\n", amqp_error_string(err)); + fprintf(stderr, ": %s\n", errstr = amqp_error_string(err)); + free(errstr); exit(1); } @@ -158,14 +162,17 @@ const char *amqp_rpc_reply_string(amqp_rpc_reply_t r) void die_rpc(amqp_rpc_reply_t r, const char *fmt, ...) { + va_list ap; + char *errstr; + if (r.reply_type == AMQP_RESPONSE_NORMAL) return; - va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); - fprintf(stderr, ": %s\n", amqp_rpc_reply_string(r)); + fprintf(stderr, ": %s\n", errstr = amqp_rpc_reply_string(r)); + free(errstr); exit(1); } |