From: Kern Sibbald Date: Thu, 1 Apr 2004 18:59:06 +0000 (+0000) Subject: Fix releasing of last_jobs X-Git-Tag: Release-1.34.0~14 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=3a9399d00cb18a9b6bd6b2ce879330604ca2d7b5;p=bacula%2Fbacula Fix releasing of last_jobs git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1170 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/bacula/src/dird/ua_status.c b/bacula/src/dird/ua_status.c index a65efae62d..19e46c95eb 100644 --- a/bacula/src/dird/ua_status.c +++ b/bacula/src/dird/ua_status.c @@ -390,7 +390,7 @@ static void list_running_jobs(UAContext *ua) bool pool_mem = false; Dmsg0(200, "enter list_run_jobs()\n"); - bsendmsg(ua, _("Running Jobs:\n")); + bsendmsg(ua, _("\nRunning Jobs:\n")); lock_jcr_chain(); foreach_jcr(jcr) { njobs++; diff --git a/bacula/src/lib/jcr.c b/bacula/src/lib/jcr.c index 00a7254689..2622d335a8 100755 --- a/bacula/src/lib/jcr.c +++ b/bacula/src/lib/jcr.c @@ -62,6 +62,9 @@ void init_last_jobs_list() void term_last_jobs_list() { if (last_jobs) { + while (!last_jobs->empty()) { + free(last_jobs->first()); + } delete last_jobs; last_jobs = NULL; rwl_destroy(&lock); diff --git a/bacula/src/stored/read_record.c b/bacula/src/stored/read_record.c index ce41ba8ed1..e90cabeda1 100644 --- a/bacula/src/stored/read_record.c +++ b/bacula/src/stored/read_record.c @@ -135,7 +135,7 @@ int read_records(JCR *jcr, DEVICE *dev, * VolSessionId and VolSessionTime */ bool found = false; - for (rec=(DEV_RECORD *)recs->first(); rec; rec=(DEV_RECORD *)recs->next(rec)) { + foreach_dlist(rec, recs) { if (rec->VolSessionId == block->VolSessionId && rec->VolSessionTime == block->VolSessionTime) { found = true; @@ -241,11 +241,10 @@ int read_records(JCR *jcr, DEVICE *dev, // Dmsg2(100, "Position=(file:block) %d:%d\n", dev->file, dev->block_num); /* Walk down list and free all remaining allocated recs */ - for (rec=(DEV_RECORD *)recs->first(); rec; ) { - DEV_RECORD *nrec = (DEV_RECORD *)recs->next(rec); + while (!recs->empty()) { + rec = (DEV_RECORD *)recs->first(); recs->remove(rec); free_record(rec); - rec = nrec; } delete recs; print_block_read_errors(jcr, block); diff --git a/bacula/src/stored/record.c b/bacula/src/stored/record.c index efe66fa51a..b5bdcf3428 100644 --- a/bacula/src/stored/record.c +++ b/bacula/src/stored/record.c @@ -149,7 +149,7 @@ DEV_RECORD *new_record(void) { DEV_RECORD *rec; - rec = (DEV_RECORD *) get_memory(sizeof(DEV_RECORD)); + rec = (DEV_RECORD *)get_memory(sizeof(DEV_RECORD)); memset(rec, 0, sizeof(DEV_RECORD)); rec->data = get_pool_memory(PM_MESSAGE); return rec;