Print this page
3027 installgrub can segfault when encountering bogus data on disk

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/boot/installboot/installboot.h
          +++ new/usr/src/cmd/boot/installboot/installboot.h
↓ open down ↓ 44 lines elided ↑ open up ↑
  45   45  } ib_device_t;
  46   46  
  47   47  typedef struct _ib_bootblock {
  48   48          char                    *buf;
  49   49          char                    *file;
  50   50          char                    *extra;
  51   51          multiboot_header_t      *mboot;
  52   52          uint32_t                mboot_off;
  53   53          uint32_t                buf_size;
  54   54          uint32_t                file_size;
       55 +        uint32_t                extra_size;
  55   56  } ib_bootblock_t;
  56   57  
  57   58  typedef struct _ib_data {
  58   59          ib_device_t     device;
  59   60          ib_bootblock_t  bootblock;
  60   61  } ib_data_t;
  61   62  
  62   63  #define is_zfs(type)    (type == TARGET_IS_ZFS)
  63   64  
  64   65  #define BBLK_DATA_RSVD_SIZE     (15 * SECTOR_SIZE)
  65   66  #define BBLK_ZFS_EXTRA_OFF      (SECTOR_SIZE * 1024)
  66   67  
  67   68  #ifdef  __cplusplus
  68   69  }
  69   70  #endif
  70   71  
  71   72  #endif /* _INSTALLBOOT_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX