From 7d7508d1f948c855c669853a7fa392a57c998d43 Mon Sep 17 00:00:00 2001 From: Marco van Wieringen Date: Fri, 3 Jun 2011 22:03:43 +0200 Subject: [PATCH] Fix small memory leak when job get canceled. --- bacula/src/dird/verify.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bacula/src/dird/verify.c b/bacula/src/dird/verify.c index e325c23d59..386fcb0036 100644 --- a/bacula/src/dird/verify.c +++ b/bacula/src/dird/verify.c @@ -560,7 +560,7 @@ void get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId) char Opts_Digest[MAXSTRING]; /* Verify Opts or MD5/SHA1 digest */ if (job_canceled(jcr)) { - return; + goto bail_out; } fname = check_pool_memory_size(fname, fd->msglen); jcr->fname = check_pool_memory_size(jcr->fname, fd->msglen); @@ -569,7 +569,7 @@ void get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId) fname)) != 3) { Jmsg3(jcr, M_FATAL, 0, _("birdmsglen, fd->msg); - return; + goto bail_out; } /* * We read the Options or Signature into fname @@ -740,7 +740,7 @@ void get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId) if (jcr->FileIndex != (uint32_t)file_index) { Jmsg2(jcr, M_FATAL, 0, _("MD5/SHA1 index %d not same as attributes %d\n"), file_index, jcr->FileIndex); - return; + goto bail_out; } if (do_Digest != CRYPTO_DIGEST_NONE) { db_escape_string(jcr, jcr->db, buf, Opts_Digest, strlen(Opts_Digest)); @@ -759,7 +759,7 @@ void get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId) berrno be; Jmsg2(jcr, M_FATAL, 0, _("bdirdfn_printed) { jcr->setJobStatus(JS_Differences); } + +bail_out: free_pool_memory(fname); } -- 2.39.5