]> git.sur5r.net Git - bacula/bacula/commitdiff
Apply Bastian Friedrich's ACL patch to eliminate ACL
authorKern Sibbald <kern@sibbald.com>
Fri, 17 Oct 2008 18:34:50 +0000 (18:34 +0000)
committerKern Sibbald <kern@sibbald.com>
Fri, 17 Oct 2008 18:34:50 +0000 (18:34 +0000)
     errors during restore.

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

bacula/src/filed/restore.c
bacula/technotes-2.5

index 2fcf113bafeeeae20b175c61f74609629f12ef8f..be581c448c9f3f1915fc4d8f31350fca77f94c4b 100644 (file)
@@ -346,6 +346,8 @@ void do_restore(JCR *jcr)
          switch (stat) {
          case CF_ERROR:
          case CF_SKIP:
+            pm_strcpy(jcr->last_fname, attr->ofname);
+            jcr->last_type = attr->type;
             break;
          case CF_EXTRACT:        /* File created and we expect file data */
             rctx.extract = true;
@@ -571,6 +573,15 @@ void do_restore(JCR *jcr)
          break;
 
       case STREAM_UNIX_ACCESS_ACL:
+         /*
+          * Do not restore ACLs when
+          * a) The current file is not extracted
+          * b)     and it is not a directory (they are never "extracted")
+          * c) or the file name is empty
+          */
+         if ((!extract && jcr->last_type != FT_DIREND) || (*jcr->last_fname == 0)) {
+            break;
+         }
          if (have_acl) {
             pm_strcpy(jcr->acl_text, sd->msg);
             Dmsg2(400, "Restoring ACL type 0x%2x <%s>\n", BACL_TYPE_ACCESS, jcr->acl_text);
@@ -583,6 +594,9 @@ void do_restore(JCR *jcr)
          break;
 
       case STREAM_UNIX_DEFAULT_ACL:
+         if ((!extract && jcr->last_type != FT_DIREND) || (*jcr->last_fname == 0)) {
+            break;
+         }
          if (have_acl) {
             pm_strcpy(jcr->acl_text, sd->msg);
             Dmsg2(400, "Restoring ACL type 0x%2x <%s>\n", BACL_TYPE_DEFAULT, jcr->acl_text);
index 491fb632743bc164449fd6315aedc7712bef1f0b..de80e0abbfa961841bc497134e0f7bbc34246b9e 100644 (file)
@@ -21,6 +21,8 @@ remove reader/writer in FOPTS????
 
 General:
 17Oct08
+kes  Apply Bastian Friedrich's ACL patch to eliminate ACL
+     errors during restore.
 kes  Minor cleanup of create_restore_volume_list() code.
 kes  Fix typo in console Makefile.in
 16Oct08