Page MenuHomeFreeBSD

D10381.id27521.diff
No OneTemporary

D10381.id27521.diff

Index: head/sys/boot/zfs/zfsimpl.c
===================================================================
--- head/sys/boot/zfs/zfsimpl.c
+++ head/sys/boot/zfs/zfsimpl.c
@@ -929,7 +929,7 @@
{
vdev_t vtmp;
vdev_phys_t *vdev_label = (vdev_phys_t *) zap_scratch;
- vdev_phys_t *tmp_label = zfs_alloc(sizeof(vdev_phys_t));
+ vdev_phys_t *tmp_label;
spa_t *spa;
vdev_t *vdev, *top_vdev, *pool_vdev;
off_t off;
@@ -957,6 +957,12 @@
psize = P2ALIGN(ldi_get_size(read_priv),
(uint64_t)sizeof (vdev_label_t));
+ /* Test for minimum pool size. */
+ if (psize < SPA_MINDEVSIZE)
+ return (EIO);
+
+ tmp_label = zfs_alloc(sizeof(vdev_phys_t));
+
for (l = 0; l < VDEV_LABELS; l++) {
off = vdev_label_offset(psize, l,
offsetof(vdev_label_t, vl_vdev_phys));
@@ -988,6 +994,9 @@
zfs_free(tmp_label, sizeof (vdev_phys_t));
+ if (best_txg == 0)
+ return (EIO);
+
if (vdev_label->vp_nvlist[0] != NV_ENCODE_XDR)
return (EIO);

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 11, 1:22 PM (21 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31280445
Default Alt Text
D10381.id27521.diff (950 B)

Event Timeline