]> git.sur5r.net Git - bacula/bacula/commitdiff
Release orphanned buffers in accurate code
authorKern Sibbald <kern@sibbald.com>
Wed, 26 Aug 2009 16:56:54 +0000 (18:56 +0200)
committerKern Sibbald <kern@sibbald.com>
Wed, 26 Aug 2009 16:56:54 +0000 (18:56 +0200)
bacula/src/dird/backup.c
bacula/technotes

index 029dfa0c89179ab8bb34bb8068062310be01394b..bcc02c912098176383ad94b62d3c3466d3b601b1 100644 (file)
@@ -131,11 +131,13 @@ static int accurate_list_handler(void *ctx, int num_fields, char **row)
 bool send_accurate_current_files(JCR *jcr)
 {
    POOL_MEM buf;
+   POOLMEM *jobids;
+   POOLMEM *nb;
 
    if (!jcr->accurate || job_canceled(jcr) || jcr->get_JobLevel()==L_FULL) {
       return true;
    }
-   POOLMEM *jobids = get_pool_memory(PM_FNAME);
+   jobids = get_pool_memory(PM_FNAME);
 
    db_accurate_get_jobids(jcr, jcr->db, &jcr->jr, jobids);
 
@@ -148,7 +150,7 @@ bool send_accurate_current_files(JCR *jcr)
       Jmsg(jcr, M_INFO, 0, _("Sending Accurate information.\n"));
    }
    /* to be able to allocate the right size for htable */
-   POOLMEM *nb = get_pool_memory(PM_FNAME);
+   nb = get_pool_memory(PM_FNAME);
    *nb = 0;                           /* clear buffer */
    Mmsg(buf, "SELECT sum(JobFiles) FROM Job WHERE JobId IN (%s)",jobids);
    db_sql_query(jcr->db, buf.c_str(), db_get_int_handler, nb);
@@ -156,7 +158,9 @@ bool send_accurate_current_files(JCR *jcr)
    jcr->file_bsock->fsend("accurate files=%s\n", nb); 
 
    if (!db_open_batch_connexion(jcr, jcr->db)) {
-      Jmsg0(jcr, M_FATAL, 0, "Can't get dedicate sql connexion");
+      free_pool_memory(jobids);
+      free_pool_memory(nb);
+      Jmsg0(jcr, M_FATAL, 0, "Can't get batch sql connexion");
       return false;
    }
 
index 7c9fbc7ab1c0af9dbd665d691cc289504113b86b..a762c96650b1b313921cd9876e0059e139d029e5 100644 (file)
@@ -2,6 +2,9 @@
           
 General:
 
+26Aug09
+kes  Fix possible seg fault in db_get_int_handler in accurate code
+kes  Release orphanned buffers in accurate code.
 25Aug09
 kes  Suppress some error messages generated after cancelling a job.
      This should reduce some of the unwanted error messages after