Fix bug introduced when adding Joliet that causes libisofs to hang.
It causes an attempt to read an extra block from ring buffer to overwrite buffer, which causes libisofs to hang. The problem is that Volume Descriptor Set terminator should not be read from buffer, but generated instead.
This commit is contained in:
parent
ad65cc4d45
commit
51df8c6284
@ -35,8 +35,10 @@ int main(int argc, char **argv)
|
|||||||
Ecma119WriteOpts opts = {
|
Ecma119WriteOpts opts = {
|
||||||
1, /* level */
|
1, /* level */
|
||||||
1, /* rockridge */
|
1, /* rockridge */
|
||||||
|
0, /* joliet */
|
||||||
0, /* omit_version_numbers */
|
0, /* omit_version_numbers */
|
||||||
0, /* allow_deep_paths */
|
0, /* allow_deep_paths */
|
||||||
|
0, /* joliet_longer_paths */
|
||||||
1, /* sort files */
|
1, /* sort files */
|
||||||
0, /* replace_dir_mode */
|
0, /* replace_dir_mode */
|
||||||
0, /* replace_file_mode */
|
0, /* replace_file_mode */
|
||||||
@ -88,7 +90,8 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
drive = drives[0].drive;
|
drive = drives[0].drive;
|
||||||
|
|
||||||
|
#ifdef ISO_GROW_CHECK_MEDIA
|
||||||
{
|
{
|
||||||
/* some check before going on */
|
/* some check before going on */
|
||||||
enum burn_disc_status state;
|
enum burn_disc_status state;
|
||||||
@ -109,6 +112,7 @@ int main(int argc, char **argv)
|
|||||||
goto exit_cleanup;
|
goto exit_cleanup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* create the data source to accesss previous image */
|
/* create the data source to accesss previous image */
|
||||||
src = libburn_data_source_new(drive);
|
src = libburn_data_source_new(drive);
|
||||||
|
@ -911,12 +911,12 @@ int ecma119_image_new(IsoImage *src, Ecma119WriteOpts *opts, Ecma119Image **img)
|
|||||||
goto target_cleanup;
|
goto target_cleanup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
voldesc_size = target->curblock - target->ms_block - 16;
|
||||||
|
|
||||||
/* Volume Descriptor Set Terminator */
|
/* Volume Descriptor Set Terminator */
|
||||||
target->curblock++;
|
target->curblock++;
|
||||||
|
|
||||||
voldesc_size = target->curblock - target->ms_block - 16;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create the writer for possible padding to ensure that in case of image
|
* Create the writer for possible padding to ensure that in case of image
|
||||||
* growing we can safety overwrite the first 64 KiB of image.
|
* growing we can safety overwrite the first 64 KiB of image.
|
||||||
|
Loading…
Reference in New Issue
Block a user