From 25e24911d9a6bbf2336dd25fc99a8d7bb35f349e Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Mon, 23 Oct 2017 11:53:12 +0200 Subject: [PATCH] New bit10 of isoburn_drive_aquire() to accept all xattr namespaces --- libisoburn/burn_wrap.c | 12 +++++++++--- libisoburn/isofs_wrap.c | 12 +++++------- libisoburn/libisoburn.h | 7 +++++-- xorriso/xorriso_timestamp.h | 2 +- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/libisoburn/burn_wrap.c b/libisoburn/burn_wrap.c index 2f0d0969..2ac35e54 100644 --- a/libisoburn/burn_wrap.c +++ b/libisoburn/burn_wrap.c @@ -6,7 +6,7 @@ */ /* libburn wrappers for libisoburn - Copyright 2007 - 2016 Thomas Schmitt, + Copyright 2007 - 2017 Thomas Schmitt, Provided under GPL version 2 or later. */ @@ -343,6 +343,8 @@ int isoburn_is_intermediate_dvd_rw(struct burn_drive *d, int flag) bit9= when scanning for ISO 9660 sessions on overwritable media: Do not demand a valid superblock at LBA 0 and scan until end of medium. + bit10= if not bit6: accept all xattr namespaces from external + filesystems, not only "user.". */ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d, int flag) @@ -386,7 +388,8 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d, (*o)->msgs_submit= libisoburn_default_msgs_submit; (*o)->msgs_submit_handle= libisoburn_default_msgs_submit_handle; (*o)->msgs_submit_flag= libisoburn_default_msgs_submit_flag; - iso_image_set_ignore_aclea((*o)->image, (flag >> 5 ) & 3); + iso_image_set_ignore_aclea((*o)->image, + ((flag >> 5 ) & 3) | ((!!(flag & 1024)) << 3)); #ifdef Hardcoded_cd_rW /* <<< A70929 : hardcoded CD-RW with fabricated -msinfo */ @@ -536,6 +539,8 @@ ex: bit9= when scanning for ISO 9660 sessions on overwritable media: Do not demand a valid superblock at LBA 0 and scan until end of medium. + bit10= if not bit6: accept all xattr namespaces from external + filesystems, not only "user.". */ int isoburn_drive_aquire(struct burn_drive_info *drive_infos[], char *adr, int flag) @@ -562,7 +567,8 @@ int isoburn_drive_aquire(struct burn_drive_info *drive_infos[], goto ex; drive_grabbed= 1; ret= isoburn_welcome_media(&o, (*drive_infos)[0].drive, - (flag & (8 | 16 | 32 | 64 | 128 | 512)) | !!(flag&2)); + (flag & (8 | 16 | 32 | 64 | 128 | 512 | 1024)) | + !!(flag&2)); if(ret<=0) goto ex; diff --git a/libisoburn/isofs_wrap.c b/libisoburn/isofs_wrap.c index 29dae00f..8abfa716 100644 --- a/libisoburn/isofs_wrap.c +++ b/libisoburn/isofs_wrap.c @@ -6,7 +6,7 @@ /* libisofs related functions of libisoburn. - Copyright 2007 - 2011 Vreixo Formoso Lopes + Copyright 2007 - 2017 Vreixo Formoso Lopes Thomas Schmitt Provided under GPL version 2 or later. */ @@ -143,7 +143,7 @@ int isoburn_read_image(struct burn_drive *d, struct isoburn_read_opts *read_opts, IsoImage **image) { - int ret, int_num, dummy; + int ret, int_num, dummy, ignore_aclea= 0; IsoReadOpts *ropts= NULL; IsoReadImageFeatures *features= NULL; uint32_t ms_block; @@ -188,11 +188,11 @@ create_blank_image:; isoburn_report_iso_error(ret, "Cannot create image", 0, "FATAL", 0); goto ex; } - iso_image_set_ignore_aclea(*image, - (!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) ); new_image= *image; } else { /* Blank new image for the drive */ + if(o->image != NULL) + ignore_aclea= iso_image_get_ignore_aclea(o->image); iso_image_unref(o->image); ret = iso_image_new("ISOIMAGE", &o->image); if (ret < 0) { @@ -203,9 +203,7 @@ create_blank_image:; *image = o->image; iso_image_ref(*image); /*protects object from premature free*/ } - iso_image_set_ignore_aclea(o->image, - (!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) ); - + iso_image_set_ignore_aclea(o->image, ignore_aclea); ret= isoburn_root_defaults(o->image, 0); if(ret <= 0) goto ex; diff --git a/libisoburn/libisoburn.h b/libisoburn/libisoburn.h index f4e0dd07..80d36e89 100644 --- a/libisoburn/libisoburn.h +++ b/libisoburn/libisoburn.h @@ -249,7 +249,7 @@ void isoburn_version(int *major, int *minor, int *micro); */ #define isoburn_libisofs_req_major 1 #define isoburn_libisofs_req_minor 4 -#define isoburn_libisofs_req_micro 8 +#define isoburn_libisofs_req_micro 9 /** The minimum version of libburn to be used with this version of libisoburn at compile time. @@ -440,7 +440,7 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[], bit4= do not emulate table of content on overwriteable media bit5= ignore ACL from external filesystems bit6= ignore POSIX Extended Attributes from external - filesystems + filesystems (xattr) bit7= pretend read-only profile and scan for table of content bit8= re-assess already acquired (*drive_infos)[0] rather than acquiring adr @@ -449,6 +449,9 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[], Do not demand a valid superblock at LBA 0, ignore it in favor of one at LBA 32, and scan until end of medium. @since 1.2.6 + bit10= if not bit6: accept all xattr namespaces from external + filesystems, not only "user.". + @since 1.5.0 @return 1 = success , 0 = drive not found , <0 = other error Please excuse the typo "aquire" in the function name. diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index b99c661c..43ce35ba 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2017.09.29.113942" +#define Xorriso_timestamP "2017.10.23.095252"