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;
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);
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);
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