]> git.hungrycats.org Git - linux/commitdiff
isofs: more "corrupted iso image" error cases
authorLinus Torvalds <torvalds@ppc970.osdl.org>
Thu, 17 Mar 2005 03:30:25 +0000 (19:30 -0800)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Thu, 17 Mar 2005 03:30:25 +0000 (19:30 -0800)
Thanks to Michal Zalewski for testing.

fs/isofs/inode.c

index 0ee7beb9d48ad21f6b9cc7938c7a345f281e6793..b9256e65e144c3be72faa612fc4ebf10c6edf6e2 100644 (file)
@@ -685,6 +685,8 @@ root_found:
          sbi->s_log_zone_size = isonum_723 (h_pri->logical_block_size);
          sbi->s_max_size = isonum_733(h_pri->volume_space_size);
        } else {
+         if (!pri)
+           goto out_freebh;
          rootp = (struct iso_directory_record *) pri->root_directory_record;
          sbi->s_nzones = isonum_733 (pri->volume_space_size);
          sbi->s_log_zone_size = isonum_723 (pri->logical_block_size);
@@ -1395,6 +1397,9 @@ struct inode *isofs_iget(struct super_block *sb,
        struct inode *inode;
        struct isofs_iget5_callback_data data;
 
+       if (offset >= 1ul << sb->s_blocksize_bits)
+               return NULL;
+
        data.block = block;
        data.offset = offset;