]> git.sur5r.net Git - bacula/bacula/commitdiff
23Aug07
authorKern Sibbald <kern@sibbald.com>
Thu, 23 Aug 2007 07:05:47 +0000 (07:05 +0000)
committerKern Sibbald <kern@sibbald.com>
Thu, 23 Aug 2007 07:05:47 +0000 (07:05 +0000)
kes  Fix (hopefully) bug #930 by doing a db_escape_string() on file
     and directory names during restore of single file/directories.
kes  Add sanity checks to .sql command when string is empty. Hopefully
     that will resolve Dirks Director crash.
22Aug07
kes  Apply patch submitted by Martin Simmons that corrects a seg fault
     in the bsmtp chat subroutine when debug is >= 10.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@5398 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/dird/ua_dotcmds.c
bacula/src/dird/ua_output.c
bacula/src/dird/ua_restore.c
bacula/src/tools/bsmtp.c
bacula/src/version.h
bacula/technotes-2.3

index a87319f3726b739954ac8a9fca681649f2c36c83..d8f4695074ca79564e45dbebd2452359264eb7be 100644 (file)
@@ -474,7 +474,11 @@ static int sql_handler(void *ctx, int num_field, char **row)
       }
       pm_strcat(rows, "\t");
    }
-   ua->send_msg("%s", rows.c_str());
+   if (!rows.c_str() || !*rows.c_str()) {
+      ua->send_msg("\t");
+   } else {
+      ua->send_msg("%s", rows.c_str());
+   }
    return 0;
 }
 
index 01c76f1a20e90ff11ea2266ab9c5895d74021e5c..8bf7178d22bddc43a28989b8b3fab1d13d29df42 100644 (file)
@@ -725,11 +725,12 @@ void bmsg(UAContext *ua, const char *fmt, va_list arg_ptr)
 {
    BSOCK *bs = ua->UA_sock;
    int maxlen, len;
-   POOLMEM *msg;
+   POOLMEM *msg = NULL;
 
    if (bs) {
       msg = bs->msg;
-   } else {
+   }
+   if (!msg) {
       msg = get_pool_memory(PM_EMSG);
    }
 
@@ -785,8 +786,9 @@ void UAContext::error_msg(const char *fmt, ...)
 {
    BSOCK *bs = UA_sock;
    va_list arg_ptr;
-   va_start(arg_ptr, fmt);
+
    if (bs && api) bs->signal(BNET_ERROR_MSG);
+   va_start(arg_ptr, fmt);
    bmsg(this, fmt, arg_ptr);
    va_end(arg_ptr);
 }
@@ -800,8 +802,9 @@ void UAContext::warning_msg(const char *fmt, ...)
 {
    BSOCK *bs = UA_sock;
    va_list arg_ptr;
-   va_start(arg_ptr, fmt);
+
    if (bs && api) bs->signal(BNET_WARNING_MSG);
+   va_start(arg_ptr, fmt);
    bmsg(this, fmt, arg_ptr);
    va_end(arg_ptr);
 }
@@ -814,8 +817,9 @@ void UAContext::info_msg(const char *fmt, ...)
 {
    BSOCK *bs = UA_sock;
    va_list arg_ptr;
-   va_start(arg_ptr, fmt);
+
    if (bs && api) bs->signal(BNET_INFO_MSG);
+   va_start(arg_ptr, fmt);
    bmsg(this, fmt, arg_ptr);
    va_end(arg_ptr);
 }
index ffae520a02a37cc20f4e6dd9090ddcdc4d694d8c..cedea941e55aaac876101c4ef7163c8eae336766 100644 (file)
@@ -967,9 +967,8 @@ static void split_path_and_filename(RESTORE_CTX *rx, char *name)
     */
    rx->fnl = p - f;
    if (rx->fnl > 0) {
-      rx->fname = check_pool_memory_size(rx->fname, rx->fnl+1);
-      memcpy(rx->fname, f, rx->fnl);    /* copy filename */
-      rx->fname[rx->fnl] = 0;
+      rx->fname = check_pool_memory_size(rx->fname, 2*(rx->fnl)+1);
+      db_escape_string(rx->fname, f, rx->fnl);
    } else {
       rx->fname[0] = 0;
       rx->fnl = 0;
@@ -977,9 +976,8 @@ static void split_path_and_filename(RESTORE_CTX *rx, char *name)
 
    rx->pnl = f - name;
    if (rx->pnl > 0) {
-      rx->path = check_pool_memory_size(rx->path, rx->pnl+1);
-      memcpy(rx->path, name, rx->pnl);
-      rx->path[rx->pnl] = 0;
+      rx->path = check_pool_memory_size(rx->path, 2*(rx->pnl)+1);
+      db_escape_string(rx-path, name, rx->pnl);
    } else {
       rx->path[0] = 0;
       rx->pnl = 0;
index 93eae1ba38f2352f8ac4088206d4ce78c4167828..03b5f5c3a718c7a0335aa75a057671ec5550d42f 100644 (file)
@@ -136,11 +136,13 @@ static void chat(const char *fmt, ...)
 
     va_start(ap, fmt);
     vfprintf(sfp, fmt, ap);
+    va_end(ap);
     if (debug_level >= 10) {
        fprintf(stdout, "%s --> ", my_hostname);
+       va_start(ap, fmt);
        vfprintf(stdout, fmt, ap);
+       va_end(ap);
     }
-    va_end(ap);
 
     fflush(sfp);
     if (debug_level >= 10) {
index 02778fb5fde368be86eef7e8f5bb8854cb328c7f..6ddcfdbbc1e938ba096b9b296f8626d5c331781e 100644 (file)
@@ -4,8 +4,8 @@
 
 #undef  VERSION
 #define VERSION "2.3.1"
-#define BDATE   "21 August 2007"
-#define LSMDATE "21Aug07"
+#define BDATE   "23 August 2007"
+#define LSMDATE "23Aug07"
 
 #define PROG_COPYRIGHT "Copyright (C) %d-2007 Free Software Foundation Europe e.V.\n"
 #define BYEAR "2007"       /* year for copyright messages in progs */
index 5f5235f9a09403207cca0550a4820c112501b96a..30360e6578b90db024859cac77854428f47c867a 100644 (file)
@@ -1,6 +1,14 @@
               Technical notes on version 2.3
 
 General:
+23Aug07
+kes  Fix (hopefully) bug #930 by doing a db_escape_string() on file  
+     and directory names during restore of single file/directories.
+kes  Add sanity checks to .sql command when string is empty. Hopefully
+     that will resolve Dirks Director crash.
+22Aug07 
+kes  Apply patch submitted by Martin Simmons that corrects a seg fault
+     in the bsmtp chat subroutine when debug is >= 10.
 21Aug07
 kes  Fix Director crash when running bat SQL queries.
 kes  Add David's notes on Item 8: Copy pools.