[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bacula-commits
Subject:    [Bacula-commits] SF.net SVN: bacula:[8394]
From:       kerns () users ! sourceforge ! net
Date:       2009-01-22 14:39:07
Message-ID: E1LQ0i3-0000NA-Uy () 74yxhf1 ! ch3 ! sourceforge ! com
[Download RAW message or body]

Revision: 8394
          http://bacula.svn.sourceforge.net/bacula/?rev=8394&view=rev
Author:   kerns
Date:     2009-01-22 14:39:07 +0000 (Thu, 22 Jan 2009)

Log Message:
-----------
Fix bug #1211 crash during reload with bad dird.conf file.

Modified Paths:
--------------
    branches/Branch-2.4/bacula/src/lib/parse_conf.c
    branches/Branch-2.4/bacula/src/version.h
    branches/Branch-2.4/bacula/technotes-2.4

Added Paths:
-----------
    branches/Branch-2.4/bacula/patches/2.4.4-bat-install.patch
    branches/Branch-2.4/bacula/patches/2.4.4-reload.patch

Added: branches/Branch-2.4/bacula/patches/2.4.4-bat-install.patch
===================================================================
--- branches/Branch-2.4/bacula/patches/2.4.4-bat-install.patch	                       \
                (rev 0)
+++ branches/Branch-2.4/bacula/patches/2.4.4-bat-install.patch	2009-01-22 14:39:07 \
UTC (rev 8394) @@ -0,0 +1,29 @@
+
+ This patch fixes bat.pro.in so that bat will install correctly.
+
+ Apply it to version 2.4.4 with:
+
+ cd <bacula-source>
+ patch -p0 <2.4.4-bat-install.patch
+ ./configure <your options>
+ make
+ ...
+ make install
+
+
+Index: src/qt-console/bat.pro.in
+===================================================================
+--- src/qt-console/bat.pro.in	(revision 8326)
++++ src/qt-console/bat.pro.in	(working copy)
+@@ -9,9 +9,9 @@
+ #    
+ CONFIG += qt debug @QWT@
+ 
+-bins.path = /$(DESTDIR)@sbindir@
++bins.path = $(DESTDIR)@sbindir@
+ bins.files = ./bat
+-confs.path = /$(DESTDIR)@sysconfdir@
++confs.path = $(DESTDIR)@sysconfdir@
+ confs.commands = ./install_conf_file   
+ 
+ TEMPLATE     = app

Added: branches/Branch-2.4/bacula/patches/2.4.4-reload.patch
===================================================================
--- branches/Branch-2.4/bacula/patches/2.4.4-reload.patch	                        \
                (rev 0)
+++ branches/Branch-2.4/bacula/patches/2.4.4-reload.patch	2009-01-22 14:39:07 UTC \
(rev 8394) @@ -0,0 +1,152 @@
+Index: src/lib/parse_conf.c
+===================================================================
+--- src/lib/parse_conf.c	(revision 8393)
++++ src/lib/parse_conf.c	(working copy)
+@@ -284,6 +284,7 @@
+             }
+             if (token != T_EQUALS) {
+                scan_err1(lc, _("expected an =, got: %s"), lc->str);
++               return;
+             }
+             break;
+          }
+@@ -304,6 +305,7 @@
+          Dmsg1(900, "store_msgs dest=%s:\n", NPRT(dest));
+          if (token != T_EQUALS) {
+             scan_err1(lc, _("expected an =, got: %s"), lc->str);
++            return;
+          }
+          scan_types(lc, (MSGS *)(item->value), item->code, dest, NULL);
+          free_pool_memory(dest);
+@@ -312,7 +314,7 @@
+ 
+       default:
+          scan_err1(lc, _("Unknown item code: %d\n"), item->code);
+-         break;
++         return;
+       }
+    }
+    scan_to_eol(lc);
+@@ -352,7 +354,7 @@
+       }
+       if (!found) {
+          scan_err1(lc, _("message type: %s not found"), str);
+-         /* NOT REACHED */
++         return;
+       }
+ 
+       if (msg_type == M_MAX+1) {         /* all? */
+@@ -384,12 +386,14 @@
+    lex_get_token(lc, T_NAME);
+    if (!is_name_valid(lc->str, &msg)) {
+       scan_err1(lc, "%s\n", msg);
++      return;
+    }
+    free_pool_memory(msg);
+    /* Store the name both pass 1 and pass 2 */
+    if (*(item->value)) {
+       scan_err2(lc, _("Attempt to redefine name \"%s\" to \"%s\"."),
+          *(item->value), lc->str);
++      return;
+    }
+    *(item->value) = bstrdup(lc->str);
+    scan_to_eol(lc);
+@@ -481,10 +485,12 @@
+       if (res == NULL) {
+          scan_err3(lc, _("Could not find config Resource %s referenced on line %d : \
%s\n"), +             lc->str, lc->line_no, lc->line);
++         return;
+       }
+       if (*(item->value)) {
+          scan_err3(lc, _("Attempt to redefine resource \"%s\" referenced on line %d \
: %s\n"), +             item->name, lc->line_no, lc->line);
++         return;
+       }
+       *(item->value) = (char *)res;
+    }
+@@ -520,6 +526,7 @@
+          if (i >= count) {
+             scan_err4(lc, _("Too many %s directives. Max. is %d. line %d: %s\n"),
+                lc->str, count, lc->line_no, lc->line);
++            return;
+          }
+          list = New(alist(10, not_owned_by_alist));
+       }
+@@ -530,6 +537,7 @@
+          if (res == NULL) {
+             scan_err3(lc, _("Could not find config Resource \"%s\" referenced on \
line %d : %s\n"), +                item->name, lc->line_no, lc->line);
++            return;
+          }
+          Dmsg5(900, "Append %p to alist %p size=%d i=%d %s\n", 
+                res, list, list->size(), i, item->name);
+@@ -592,6 +600,7 @@
+      if (res == NULL) {
+         scan_err3(lc, _("Missing config Resource \"%s\" referenced on line %d : \
%s\n"), +            lc->str, lc->line_no, lc->line);
++        return;
+      }
+    }
+    scan_to_eol(lc);
+@@ -655,12 +664,13 @@
+       }
+       if (!size_to_uint64(bsize, strlen(bsize), &uvalue)) {
+          scan_err1(lc, _("expected a size number, got: %s"), lc->str);
++         return;
+       }
+       *(uint64_t *)(item->value) = uvalue;
+       break;
+    default:
+       scan_err1(lc, _("expected a size, got: %s"), lc->str);
+-      break;
++      return;
+    }
+    if (token != T_EOL) {
+       scan_to_eol(lc);
+@@ -697,12 +707,13 @@
+       }
+       if (!duration_to_utime(period, &utime)) {
+          scan_err1(lc, _("expected a time period, got: %s"), period);
++         return;
+       }
+       *(utime_t *)(item->value) = utime;
+       break;
+    default:
+       scan_err1(lc, _("expected a time period, got: %s"), lc->str);
+-      break;
++      return;
+    }
+    if (token != T_EOL) {
+       scan_to_eol(lc);
+@@ -721,6 +732,7 @@
+       *(uint32_t *)(item->value) &= ~(item->code);
+    } else {
+       scan_err2(lc, _("Expect %s, got: %s"), "YES, NO, TRUE, or FALSE", lc->str); \
/* YES and NO must not be translated */ ++      return;
+    }
+    scan_to_eol(lc);
+    set_bit(index, res_all.hdr.item_present);
+@@ -736,6 +748,7 @@
+       *(bool *)(item->value) = false;
+    } else {
+       scan_err2(lc, _("Expect %s, got: %s"), "YES, NO, TRUE, or FALSE", lc->str); \
/* YES and NO must not be translated */ ++      return;
+    }
+    scan_to_eol(lc);
+    set_bit(index, res_all.hdr.item_present);
+@@ -761,6 +774,7 @@
+    }
+    if (i != 0) {
+       scan_err1(lc, _("Expected a Tape Label keyword, got: %s"), lc->str);
++      return;
+    }
+    scan_to_eol(lc);
+    set_bit(index, res_all.hdr.item_present);
+@@ -910,6 +924,7 @@
+                Dmsg0(900, "T_EOB => define new resource\n");
+                if (res_all.hdr.name == NULL) {
+                   scan_err0(lc, _("Name not specified for resource"));
++                  return 0;
+                }
+                save_resource(res_type, items, pass);  /* save resource */
+                break;

Modified: branches/Branch-2.4/bacula/src/lib/parse_conf.c
===================================================================
--- branches/Branch-2.4/bacula/src/lib/parse_conf.c	2009-01-21 14:50:41 UTC (rev \
                8393)
+++ branches/Branch-2.4/bacula/src/lib/parse_conf.c	2009-01-22 14:39:07 UTC (rev \
8394) @@ -284,6 +284,7 @@
             }
             if (token != T_EQUALS) {
                scan_err1(lc, _("expected an =, got: %s"), lc->str);
+               return;
             }
             break;
          }
@@ -304,6 +305,7 @@
          Dmsg1(900, "store_msgs dest=%s:\n", NPRT(dest));
          if (token != T_EQUALS) {
             scan_err1(lc, _("expected an =, got: %s"), lc->str);
+            return;
          }
          scan_types(lc, (MSGS *)(item->value), item->code, dest, NULL);
          free_pool_memory(dest);
@@ -312,7 +314,7 @@
 
       default:
          scan_err1(lc, _("Unknown item code: %d\n"), item->code);
-         break;
+         return;
       }
    }
    scan_to_eol(lc);
@@ -352,7 +354,7 @@
       }
       if (!found) {
          scan_err1(lc, _("message type: %s not found"), str);
-         /* NOT REACHED */
+         return;
       }
 
       if (msg_type == M_MAX+1) {         /* all? */
@@ -384,12 +386,14 @@
    lex_get_token(lc, T_NAME);
    if (!is_name_valid(lc->str, &msg)) {
       scan_err1(lc, "%s\n", msg);
+      return;
    }
    free_pool_memory(msg);
    /* Store the name both pass 1 and pass 2 */
    if (*(item->value)) {
       scan_err2(lc, _("Attempt to redefine name \"%s\" to \"%s\"."),
          *(item->value), lc->str);
+      return;
    }
    *(item->value) = bstrdup(lc->str);
    scan_to_eol(lc);
@@ -481,10 +485,12 @@
       if (res == NULL) {
          scan_err3(lc, _("Could not find config Resource %s referenced on line %d : \
%s\n"),  lc->str, lc->line_no, lc->line);
+         return;
       }
       if (*(item->value)) {
          scan_err3(lc, _("Attempt to redefine resource \"%s\" referenced on line %d \
: %s\n"),  item->name, lc->line_no, lc->line);
+         return;
       }
       *(item->value) = (char *)res;
    }
@@ -520,6 +526,7 @@
          if (i >= count) {
             scan_err4(lc, _("Too many %s directives. Max. is %d. line %d: %s\n"),
                lc->str, count, lc->line_no, lc->line);
+            return;
          }
          list = New(alist(10, not_owned_by_alist));
       }
@@ -530,6 +537,7 @@
          if (res == NULL) {
             scan_err3(lc, _("Could not find config Resource \"%s\" referenced on \
line %d : %s\n"),  item->name, lc->line_no, lc->line);
+            return;
          }
          Dmsg5(900, "Append %p to alist %p size=%d i=%d %s\n", 
                res, list, list->size(), i, item->name);
@@ -592,6 +600,7 @@
      if (res == NULL) {
         scan_err3(lc, _("Missing config Resource \"%s\" referenced on line %d : \
%s\n"),  lc->str, lc->line_no, lc->line);
+        return;
      }
    }
    scan_to_eol(lc);
@@ -655,12 +664,13 @@
       }
       if (!size_to_uint64(bsize, strlen(bsize), &uvalue)) {
          scan_err1(lc, _("expected a size number, got: %s"), lc->str);
+         return;
       }
       *(uint64_t *)(item->value) = uvalue;
       break;
    default:
       scan_err1(lc, _("expected a size, got: %s"), lc->str);
-      break;
+      return;
    }
    if (token != T_EOL) {
       scan_to_eol(lc);
@@ -697,12 +707,13 @@
       }
       if (!duration_to_utime(period, &utime)) {
          scan_err1(lc, _("expected a time period, got: %s"), period);
+         return;
       }
       *(utime_t *)(item->value) = utime;
       break;
    default:
       scan_err1(lc, _("expected a time period, got: %s"), lc->str);
-      break;
+      return;
    }
    if (token != T_EOL) {
       scan_to_eol(lc);
@@ -721,6 +732,7 @@
       *(uint32_t *)(item->value) &= ~(item->code);
    } else {
       scan_err2(lc, _("Expect %s, got: %s"), "YES, NO, TRUE, or FALSE", lc->str); /* \
YES and NO must not be translated */ +      return;
    }
    scan_to_eol(lc);
    set_bit(index, res_all.hdr.item_present);
@@ -736,6 +748,7 @@
       *(bool *)(item->value) = false;
    } else {
       scan_err2(lc, _("Expect %s, got: %s"), "YES, NO, TRUE, or FALSE", lc->str); /* \
YES and NO must not be translated */ +      return;
    }
    scan_to_eol(lc);
    set_bit(index, res_all.hdr.item_present);
@@ -761,6 +774,7 @@
    }
    if (i != 0) {
       scan_err1(lc, _("Expected a Tape Label keyword, got: %s"), lc->str);
+      return;
    }
    scan_to_eol(lc);
    set_bit(index, res_all.hdr.item_present);
@@ -910,6 +924,7 @@
                Dmsg0(900, "T_EOB => define new resource\n");
                if (res_all.hdr.name == NULL) {
                   scan_err0(lc, _("Name not specified for resource"));
+                  return 0;
                }
                save_resource(res_type, items, pass);  /* save resource */
                break;

Modified: branches/Branch-2.4/bacula/src/version.h
===================================================================
--- branches/Branch-2.4/bacula/src/version.h	2009-01-21 14:50:41 UTC (rev 8393)
+++ branches/Branch-2.4/bacula/src/version.h	2009-01-22 14:39:07 UTC (rev 8394)
@@ -3,17 +3,17 @@
  */
 
 #undef  VERSION
-#define VERSION "2.4.4"
-#define BDATE   "28 December 2008"
-#define LSMDATE "28Dec08"
+#define VERSION "2.4.5"
+#define BDATE   "22 January 2009"
+#define LSMDATE "22Jan09"
 
 #define PROG_COPYRIGHT "Copyright (C) %d-2008 Free Software Foundation Europe \
                e.V.\n"
-#define BYEAR "2008"       /* year for copyright messages in progs */
+#define BYEAR "2009"       /* year for copyright messages in progs */
 
 /*
    Bacula ® - The Network Backup Solution
 
-   Copyright (C) 2000-2008 Free Software Foundation Europe e.V.
+   Copyright (C) 2000-2009 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.

Modified: branches/Branch-2.4/bacula/technotes-2.4
===================================================================
--- branches/Branch-2.4/bacula/technotes-2.4	2009-01-21 14:50:41 UTC (rev 8393)
+++ branches/Branch-2.4/bacula/technotes-2.4	2009-01-22 14:39:07 UTC (rev 8394)
@@ -1,11 +1,13 @@
               Technical notes on version 2.4
 
 General:
+22Jan09
+kes  Fix bug #1211 crash during reload with bad dird.conf file.
 10Jan09
-kes Fix bat.pro.in so that bat will install.
+kes  Fix bat.pro.in so that bat will install.
 07Jan09
-kes Fix bug #1212, SD is unable to recycle purged volumes. fstat()
-    was broken.
+kes  Fix bug #1212, SD is unable to recycle purged volumes. fstat()
+     was broken.
 
 Release Version 2.4.4
 28Dec08


This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Bacula-commits mailing list
Bacula-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic