summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorDavid Wragg <david@rabbitmq.com>2010-07-27 19:36:36 +0100
committerDavid Wragg <david@rabbitmq.com>2010-07-27 19:36:36 +0100
commit4f30d164910f88f181489f591c0957317142da01 (patch)
tree2efeabc9c912f7471c0a0cf95d06a5544c7ac1a0 /tools
parenta39a656ffb1a72b031aa586a37ff77b39939b6fb (diff)
downloadrabbitmq-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.c19
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);
}