mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-17 10:01:01 +03:00
Fix zdb -E segfault
SPA_MAXBLOCKSIZE is too large for stack. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: loli10K <ezomori.nozomu@gmail.com> Signed-off-by: Chunwei Chen <david.chen@nutanix.com> Closes #7099
This commit is contained in:
parent
950e17c215
commit
5e3bd0e684
@ -4235,9 +4235,11 @@ zdb_embedded_block(char *thing)
|
||||
{
|
||||
blkptr_t bp;
|
||||
unsigned long long *words = (void *)&bp;
|
||||
char buf[SPA_MAXBLOCKSIZE];
|
||||
char *buf;
|
||||
int err;
|
||||
|
||||
buf = umem_alloc(SPA_MAXBLOCKSIZE, UMEM_NOFAIL);
|
||||
|
||||
bzero(&bp, sizeof (bp));
|
||||
err = sscanf(thing, "%llx:%llx:%llx:%llx:%llx:%llx:%llx:%llx:"
|
||||
"%llx:%llx:%llx:%llx:%llx:%llx:%llx:%llx",
|
||||
@ -4256,6 +4258,7 @@ zdb_embedded_block(char *thing)
|
||||
exit(1);
|
||||
}
|
||||
zdb_dump_block_raw(buf, BPE_GET_LSIZE(&bp), 0);
|
||||
umem_free(buf, SPA_MAXBLOCKSIZE);
|
||||
}
|
||||
|
||||
int
|
||||
|
Loading…
Reference in New Issue
Block a user