Bug fix: Split file directories (-split_size) were created with wrong permissions

This commit is contained in:
Thomas Schmitt 2022-06-02 16:10:21 +02:00
parent 865115f779
commit 5aac3dd80f
5 changed files with 78 additions and 55 deletions

View File

@ -126,6 +126,7 @@ int Xorriso_graft_split(struct XorrisO *xorriso, IsoImage *volume,
int partno, total_parts; int partno, total_parts;
off_t offset; off_t offset;
char *part_name= NULL; char *part_name= NULL;
struct stat stbuf;
Xorriso_alloc_meM(part_name, char, SfileadrL); Xorriso_alloc_meM(part_name, char, SfileadrL);
@ -133,6 +134,8 @@ int Xorriso_graft_split(struct XorrisO *xorriso, IsoImage *volume,
if(ret < 0) if(ret < 0)
goto ex; goto ex;
*node= (IsoNode *) new_dir; *node= (IsoNode *) new_dir;
if(lstat(disk_path, &stbuf) != -1)
Xorriso_transfer_properties(xorriso, &stbuf, disk_path, *node, 1 | 8);
if(xorriso->update_flags & 1) { if(xorriso->update_flags & 1) {
ret= Xorriso_mark_update_merge(xorriso, img_name, node, 1); ret= Xorriso_mark_update_merge(xorriso, img_name, node, 1);
if(ret <= 0) if(ret <= 0)

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps .\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1) .\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Version 1.5.5, May 30, 2022" .TH XORRISO 1 "Version 1.5.5, Jun 02, 2022"
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@ -1422,6 +1422,10 @@ E.g:
.br .br
/file/part_3_of_3_at_4094m_with_2047m_of_5753194821 /file/part_3_of_3_at_4094m_with_2047m_of_5753194821
.br .br
If the directory /file does no yet exist, then its permissions are not taken
from directory /my/disk but rather from /my/disk/file with additional
x\-permission for those who have r\-permission.
.br
While command \-split_size is set larger than 0, and if all pieces of a file While command \-split_size is set larger than 0, and if all pieces of a file
reside in the same ISO directory with no other files, and if the names look reside in the same ISO directory with no other files, and if the names look
like above, then their ISO directory will be recognized and handled like a like above, then their ISO directory will be recognized and handled like a
@ -1691,6 +1695,9 @@ FAILURE event.
A well tested \-split_size is 2047m. Sizes above \-file_size_limit are not A well tested \-split_size is 2047m. Sizes above \-file_size_limit are not
permissible. permissible.
.br .br
The newly created ISO directory inherits its permissions from the data file
with additional x\-permission for those who have r\-permission.
.br
While command \-split_size is set larger than 0 such a directory with split While command \-split_size is set larger than 0 such a directory with split
file pieces will be recognized and handled like a regular file by commands file pieces will be recognized and handled like a regular file by commands
\-compare* , \-update*, and in overwrite situations. There are \-osirrox \-compare* , \-update*, and in overwrite situations. There are \-osirrox

View File

@ -1266,6 +1266,9 @@ filesystem.
/file/part_2_of_3_at_2047m_with_2047m_of_5753194821 \ /file/part_2_of_3_at_2047m_with_2047m_of_5753194821 \
-cut_out /my/disk/file 4094m 2047m \ -cut_out /my/disk/file 4094m 2047m \
/file/part_3_of_3_at_4094m_with_2047m_of_5753194821 /file/part_3_of_3_at_4094m_with_2047m_of_5753194821
If the directory /file does no yet exist, then its permissions are
not taken from directory /my/disk but rather from /my/disk/file
with additional x-permission for those who have r-permission.
While command -split_size is set larger than 0, and if all pieces While command -split_size is set larger than 0, and if all pieces
of a file reside in the same ISO directory with no other files, and of a file reside in the same ISO directory with no other files, and
if the names look like above, then their ISO directory will be if the names look like above, then their ISO directory will be
@ -1482,6 +1485,9 @@ File: xorriso.info, Node: SetInsert, Next: Manip, Prev: Insert, Up: Commands
Default is 0 which will exclude files larger than -file_size_limit Default is 0 which will exclude files larger than -file_size_limit
by a FAILURE event. A well tested -split_size is 2047m. Sizes by a FAILURE event. A well tested -split_size is 2047m. Sizes
above -file_size_limit are not permissible. above -file_size_limit are not permissible.
The newly created ISO directory inherits its permissions from the
data file with additional x-permission for those who have
r-permission.
While command -split_size is set larger than 0 such a directory While command -split_size is set larger than 0 such a directory
with split file pieces will be recognized and handled like a with split file pieces will be recognized and handled like a
regular file by commands -compare* , -update*, and in overwrite regular file by commands -compare* , -update*, and in overwrite
@ -5618,7 +5624,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chmod_r sets permissions in ISO image: Manip. (line 66) * -chmod_r sets permissions in ISO image: Manip. (line 66)
* -chown sets ownership in ISO image: Manip. (line 43) * -chown sets ownership in ISO image: Manip. (line 43)
* -chown_r sets ownership in ISO image: Manip. (line 47) * -chown_r sets ownership in ISO image: Manip. (line 47)
* -clone copies ISO directory tree: Insert. (line 192) * -clone copies ISO directory tree: Insert. (line 195)
* -close controls media closing: SetWrite. (line 484) * -close controls media closing: SetWrite. (line 484)
* -close_damaged closes damaged track and session: Writing. (line 205) * -close_damaged closes damaged track and session: Writing. (line 205)
* -close_filter_list bans filter registration: Filter. (line 50) * -close_filter_list bans filter registration: Filter. (line 50)
@ -5631,9 +5637,9 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -concat copies ISO file content: Restore. (line 148) * -concat copies ISO file content: Restore. (line 148)
* -copyright_file sets copyright file name: SetWrite. (line 245) * -copyright_file sets copyright file name: SetWrite. (line 245)
* -cpax copies files to disk: Restore. (line 128) * -cpax copies files to disk: Restore. (line 128)
* -cpr inserts like with cp -r: Insert. (line 171) * -cpr inserts like with cp -r: Insert. (line 174)
* -cpx copies files to disk: Restore. (line 117) * -cpx copies files to disk: Restore. (line 117)
* -cp_clone copies ISO directory tree: Insert. (line 203) * -cp_clone copies ISO directory tree: Insert. (line 206)
* -cp_rx copies file trees to disk: Restore. (line 131) * -cp_rx copies file trees to disk: Restore. (line 131)
* -cp_rx copies file trees to disk <1>: Restore. (line 139) * -cp_rx copies file trees to disk <1>: Restore. (line 139)
* -cut_out inserts piece of data file or device: Insert. (line 139) * -cut_out inserts piece of data file or device: Insert. (line 139)
@ -5703,7 +5709,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -list_formats lists available formats: Writing. (line 128) * -list_formats lists available formats: Writing. (line 128)
* -list_profiles lists supported media: Writing. (line 163) * -list_profiles lists supported media: Writing. (line 163)
* -list_speeds lists available write speeds: Writing. (line 139) * -list_speeds lists available write speeds: Writing. (line 139)
* -lns creates ISO symbolic link: Insert. (line 188) * -lns creates ISO symbolic link: Insert. (line 191)
* -load addresses a particular session as input: Loading. (line 54) * -load addresses a particular session as input: Loading. (line 54)
* -local_charset sets terminal character set: Charset. (line 57) * -local_charset sets terminal character set: Charset. (line 57)
* -logfile logs output channels to file: Frontend. (line 19) * -logfile logs output channels to file: Frontend. (line 19)
@ -5720,7 +5726,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -map_single inserts path: Insert. (line 93) * -map_single inserts path: Insert. (line 93)
* -mark sets synchronizing message: Frontend. (line 23) * -mark sets synchronizing message: Frontend. (line 23)
* -md5 controls handling of MD5 sums: Loading. (line 184) * -md5 controls handling of MD5 sums: Loading. (line 184)
* -mkdir creates ISO directory: Insert. (line 184) * -mkdir creates ISO directory: Insert. (line 187)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 419) * -modesty_on_drive keep drive buffer hungry: SetWrite. (line 419)
* -mount issues mount command for ISO session: Restore. (line 204) * -mount issues mount command for ISO session: Restore. (line 204)
* -mount_cmd composes mount command line: Inquiry. (line 49) * -mount_cmd composes mount command line: Inquiry. (line 49)
@ -5885,9 +5891,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Dialog, EOF resistant, -named_pipe_loop: Frontend. (line 119) * Dialog, EOF resistant, -named_pipe_loop: Frontend. (line 119)
* Dialog, line editing, -use_readline: DialogCtl. (line 26) * Dialog, line editing, -use_readline: DialogCtl. (line 26)
* Dialog, terminal geometry, -page: DialogCtl. (line 18) * Dialog, terminal geometry, -page: DialogCtl. (line 18)
* Directories, copy, -cp_clone: Insert. (line 203) * Directories, copy, -cp_clone: Insert. (line 206)
* Directory, copy, -clone: Insert. (line 192) * Directory, copy, -clone: Insert. (line 195)
* Directory, create, -mkdir: Insert. (line 184) * Directory, create, -mkdir: Insert. (line 187)
* Directory, delete, -rmdir: Manip. (line 29) * Directory, delete, -rmdir: Manip. (line 29)
* disk_path, _definition: Insert. (line 6) * disk_path, _definition: Insert. (line 6)
* Drive, accessability, -drive_class: AqDrive. (line 43) * Drive, accessability, -drive_class: AqDrive. (line 43)
@ -5986,7 +5992,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Insert, paths from disk file, -map_l: Insert. (line 96) * Insert, paths from disk file, -map_l: Insert. (line 96)
* Insert, paths from disk file, -path_list: Insert. (line 81) * Insert, paths from disk file, -path_list: Insert. (line 81)
* Insert, paths from disk file, -quoted_path_list: Insert. (line 85) * Insert, paths from disk file, -quoted_path_list: Insert. (line 85)
* Insert, paths, -cpr: Insert. (line 171) * Insert, paths, -cpr: Insert. (line 174)
* Insert, pathspecs, -add: Insert. (line 44) * Insert, pathspecs, -add: Insert. (line 44)
* Insert, piece of data file or device, -cut_out: Insert. (line 139) * Insert, piece of data file or device, -cut_out: Insert. (line 139)
* Interval reader for system area and partitions: Bootable. (line 32) * Interval reader for system area and partitions: Bootable. (line 32)
@ -6107,7 +6113,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26) * Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26)
* SUN Disk Label, production: Bootable. (line 383) * SUN Disk Label, production: Bootable. (line 383)
* SUN SPARC boot images, activation: Bootable. (line 464) * SUN SPARC boot images, activation: Bootable. (line 464)
* Symbolic link, create, -lns: Insert. (line 188) * Symbolic link, create, -lns: Insert. (line 191)
* System area, _definition: Bootable. (line 200) * System area, _definition: Bootable. (line 200)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 308) * Table-of-content, search sessions, -rom_toc_scan: Loading. (line 308)
* Table-of-content, show, -toc: Inquiry. (line 27) * Table-of-content, show, -toc: Inquiry. (line 27)
@ -6169,47 +6175,47 @@ Node: ArgSort27718
Node: AqDrive29212 Node: AqDrive29212
Node: Loading36369 Node: Loading36369
Node: Insert58208 Node: Insert58208
Node: SetInsert70117 Node: SetInsert70325
Node: Manip80081 Node: Manip80442
Node: CmdFind90181 Node: CmdFind90542
Node: Filter109110 Node: Filter109471
Node: Writing113732 Node: Writing114093
Node: SetWrite125987 Node: SetWrite126348
Node: Bootable155839 Node: Bootable156200
Node: Jigdo183720 Node: Jigdo184081
Node: Charset188723 Node: Charset189084
Node: Exception192052 Node: Exception192413
Node: DialogCtl198181 Node: DialogCtl198542
Node: Inquiry200783 Node: Inquiry201144
Node: Navigate209665 Node: Navigate210026
Node: Verify218372 Node: Verify218733
Node: Restore229521 Node: Restore229882
Node: Emulation241729 Node: Emulation242090
Node: Scripting252185 Node: Scripting252546
Node: Frontend259968 Node: Frontend260329
Node: Examples269594 Node: Examples269955
Node: ExDevices270772 Node: ExDevices271133
Node: ExCreate271433 Node: ExCreate271794
Node: ExDialog272733 Node: ExDialog273094
Node: ExGrowing274004 Node: ExGrowing274365
Node: ExModifying274813 Node: ExModifying275174
Node: ExBootable275323 Node: ExBootable275684
Node: ExCharset275878 Node: ExCharset276239
Node: ExPseudo276774 Node: ExPseudo277135
Node: ExCdrecord277701 Node: ExCdrecord278062
Node: ExMkisofs278021 Node: ExMkisofs278382
Node: ExGrowisofs279918 Node: ExGrowisofs280279
Node: ExException281071 Node: ExException281432
Node: ExTime281529 Node: ExTime281890
Node: ExIncBackup281987 Node: ExIncBackup282348
Node: ExRestore286013 Node: ExRestore286374
Node: ExRecovery286959 Node: ExRecovery287320
Node: Files287531 Node: Files287892
Node: Environ288865 Node: Environ289226
Node: Seealso289613 Node: Seealso289974
Node: Bugreport290330 Node: Bugreport290691
Node: Legal290921 Node: Legal291282
Node: CommandIdx291933 Node: CommandIdx292294
Node: ConceptIdx309758 Node: ConceptIdx310119
 
End Tag Table End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps @c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1) @c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.5.5, May 30, 2022" @c man .TH XORRISO 1 "Version 1.5.5, Jun 02, 2022"
@c man .\" Please adjust this date whenever revising the manpage. @c man .\" Please adjust this date whenever revising the manpage.
@c man .\" @c man .\"
@c man .\" Some roff macros, for reference: @c man .\" Some roff macros, for reference:
@ -1732,6 +1732,10 @@ E.g:
@* @*
/file/part_3_of_3_at_4094m_with_2047m_of_5753194821 /file/part_3_of_3_at_4094m_with_2047m_of_5753194821
@* @*
If the directory /file does no yet exist, then its permissions are not taken
from directory /my/disk but rather from /my/disk/file with additional
x-permission for those who have r-permission.
@*
While command -split_size is set larger than 0, and if all pieces of a file While command -split_size is set larger than 0, and if all pieces of a file
reside in the same ISO directory with no other files, and if the names look reside in the same ISO directory with no other files, and if the names look
like above, then their ISO directory will be recognized and handled like a like above, then their ISO directory will be recognized and handled like a
@ -2037,6 +2041,9 @@ FAILURE event.
A well tested -split_size is 2047m. Sizes above -file_size_limit are not A well tested -split_size is 2047m. Sizes above -file_size_limit are not
permissible. permissible.
@* @*
The newly created ISO directory inherits its permissions from the data file
with additional x-permission for those who have r-permission.
@*
While command -split_size is set larger than 0 such a directory with split While command -split_size is set larger than 0 such a directory with split
file pieces will be recognized and handled like a regular file by commands file pieces will be recognized and handled like a regular file by commands
-compare* , -update*, and in overwrite situations. There are -osirrox -compare* , -update*, and in overwrite situations. There are -osirrox

View File

@ -1 +1 @@
#define Xorriso_timestamP "2022.05.30.164747" #define Xorriso_timestamP "2022.06.02.140943"