]> git.sur5r.net Git - bacula/bacula/commitdiff
Fix buffer overruns detected by Coverity
authorKern Sibbald <kern@sibbald.com>
Sat, 17 May 2008 23:26:57 +0000 (23:26 +0000)
committerKern Sibbald <kern@sibbald.com>
Sat, 17 May 2008 23:26:57 +0000 (23:26 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6982 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/kernstodo
bacula/src/dird/migrate.c
bacula/src/dird/ua_restore.c
bacula/technotes-2.3

index 58cbda77c745df74f812c626b6517e989056ba89..997371491a96456e036782f0de643973ce63d156 100644 (file)
@@ -114,6 +114,8 @@ Professional Needs:
 
 Priority:
 ================
+- Change calling sequence to delete_job_id_range() in ua_cmds.c 
+  the preceding strtok() is done inside the subroutine only once.
 - Dangling softlinks are not restored properly.  For example, take a
   soft link such as src/testprogs/install-sh, which points to /usr/share/autoconf...
   move the directory to another machine where the file /usr/share/autoconf does
index 27b201af518c4c8967333fedf239ab4a5784ee0c..42fd5cf10655555273f1cf08335afa8bd21cb0bf 100644 (file)
@@ -28,7 +28,7 @@
 /*
  *
  *   Bacula Director -- migrate.c -- responsible for doing
- *     migration jobs.
+ *     migration and copy jobs.
  * 
  *   Also handles Copy jobs (March MMVIII)
  *
@@ -411,13 +411,14 @@ struct idpkt {
 /* Add an item to the list if it is unique */
 static void add_unique_id(idpkt *ids, char *item) 
 {
-   char id[30];
+   const int maxlen = 30;
+   char id[maxlen+1];
    char *q = ids->list;
 
    /* Walk through current list to see if each item is the same as item */
    for ( ; *q; ) {
        id[0] = 0;
-       for (int i=0; i<(int)sizeof(id); i++) {
+       for (int i=0; i<maxlen; i++) {
           if (*q == 0) {
              break;
           } else if (*q == ',') {
@@ -1250,11 +1251,12 @@ void migration_cleanup(JCR *jcr, int TermCode)
  */
 static int get_next_dbid_from_list(char **p, DBId_t *DBId)
 {
-   char id[30];
+   const int maxlen = 30;
+   char id[maxlen+1];
    char *q = *p;
 
    id[0] = 0;
-   for (int i=0; i<(int)sizeof(id); i++) {
+   for (int i=0; i<maxlen; i++) {
       if (*q == 0) {
          break;
       } else if (*q == ',') {
index e0a364fe3dbe2bfb20a170394441f427d9c6c174..f314c110ed0720245176e6f897e11bb0d0c48021 100644 (file)
@@ -1241,11 +1241,12 @@ bail_out:
  */
 int get_next_jobid_from_list(char **p, JobId_t *JobId)
 {
-   char jobid[30];
+   const int maxlen = 30;
+   char jobid[maxlen+1];
    char *q = *p;
 
    jobid[0] = 0;
-   for (int i=0; i<(int)sizeof(jobid); i++) {
+   for (int i=0; i<maxlen; i++) {
       if (*q == 0) {
          break;
       } else if (*q == ',') {
@@ -1410,6 +1411,8 @@ void find_storage_resource(UAContext *ua, RESTORE_CTX &rx, char *Storage, char *
 
    /* Take command line arg, or ask user if none */
    rx.store = get_storage_resource(ua, false /* don't use default */);
-   Dmsg1(200, "Set store=%s\n", rx.store->name());
+   if (rx.store) {
+      Dmsg1(200, "Set store=%s\n", rx.store->name());
+   }
 
 }
index 0f788b2af7d5f09be4b43a417eca8dbb6b0d26be..6cca42aa121371c9ca8012ba59ec3652ba6e8087 100644 (file)
@@ -24,6 +24,8 @@ Add long term statistics job table
 
 
 General:
+17May08
+kes  Fix buffer overruns detected by Coverity.
 13May08
 kes  Tweak joblog display.
 12May08