Limit isoLevel to 1 and 2 to avoid segfaulting when isoLevel is set to 3 by
dereferencing a NULL function pointer Add some asserts to ensure that isolevel is always either 1 or 2. PR: 203645 Reported by: Thomas Schmitt <scdbackup@gmx.net> MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
parent
eac300b82d
commit
bc06965ace
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=290264
@ -296,8 +296,8 @@ cd9660_parse_opts(const char *option, fsinfo_t *fsopts)
|
|||||||
int rv;
|
int rv;
|
||||||
/* Set up allowed options - integer options ONLY */
|
/* Set up allowed options - integer options ONLY */
|
||||||
option_t cd9660_options[] = {
|
option_t cd9660_options[] = {
|
||||||
{ "l", &diskStructure.isoLevel, 1, 3, "ISO Level" },
|
{ "l", &diskStructure.isoLevel, 1, 2, "ISO Level" },
|
||||||
{ "isolevel", &diskStructure.isoLevel, 1, 3, "ISO Level" },
|
{ "isolevel", &diskStructure.isoLevel, 1, 2, "ISO Level" },
|
||||||
{ "verbose", &diskStructure.verbose_level, 0, 2,
|
{ "verbose", &diskStructure.verbose_level, 0, 2,
|
||||||
"Turns on verbose output" },
|
"Turns on verbose output" },
|
||||||
{ "v", &diskStructure.verbose_level, 0 , 2,
|
{ "v", &diskStructure.verbose_level, 0 , 2,
|
||||||
@ -1055,6 +1055,7 @@ cd9660_rename_filename(cd9660node *iter, int num, int delete_chars)
|
|||||||
if (diskStructure.verbose_level > 0)
|
if (diskStructure.verbose_level > 0)
|
||||||
printf("Rename_filename called\n");
|
printf("Rename_filename called\n");
|
||||||
|
|
||||||
|
assert(1 <= diskStructure.isoLevel && diskStructure.isoLevel <= 2);
|
||||||
/* TODO : A LOT of chanes regarding 8.3 filenames */
|
/* TODO : A LOT of chanes regarding 8.3 filenames */
|
||||||
if (diskStructure.isoLevel == 1)
|
if (diskStructure.isoLevel == 1)
|
||||||
maxlength = 8;
|
maxlength = 8;
|
||||||
@ -1730,6 +1731,7 @@ cd9660_joliet_convert_filename(const char *oldname, char *newname, int is_file)
|
|||||||
static int
|
static int
|
||||||
cd9660_convert_filename(const char *oldname, char *newname, int is_file)
|
cd9660_convert_filename(const char *oldname, char *newname, int is_file)
|
||||||
{
|
{
|
||||||
|
assert(1 <= diskStructure.isoLevel && diskStructure.isoLevel <= 2);
|
||||||
/* NEW */
|
/* NEW */
|
||||||
cd9660_filename_conversion_functor conversion_function = 0;
|
cd9660_filename_conversion_functor conversion_function = 0;
|
||||||
if (diskStructure.isoLevel == 1)
|
if (diskStructure.isoLevel == 1)
|
||||||
|
Loading…
Reference in New Issue
Block a user