]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Stack overflow in recursive bpobj_iterate_impl
authorPaul Zuchowski <31706010+PaulZ-98@users.noreply.github.com>
Wed, 6 Mar 2019 17:50:55 +0000 (12:50 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 6 Mar 2019 17:50:55 +0000 (09:50 -0800)
commita73e8fdb93d24b885f0c38202a34da51013d674a
treece23108be9aee5f492375ce034e836769654e15b
parent96ebc5a1a4cc57806882e4e9b38c49ba8a5bdfda
Stack overflow in recursive bpobj_iterate_impl

The function bpobj_iterate_impl overflows the stack when bpobjs
are deeply nested. Rewrite the function to eliminate the recursion.

Reviewed-by: Serapheim Dimitropoulos <serapheim@delphix.com>
Reviewed-by: Matt Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Paul Zuchowski <pzuchowski@datto.com>
Closes #7674
Closes #7675
Closes #7908
include/sys/dmu.h
module/zfs/bpobj.c
module/zfs/dbuf.c