On Wed, Apr 29, 2020 at 09:20:28AM +0200, Markus Armbruster wrote: > The Error ** argument must be NULL, &error_abort, &error_fatal, or a > pointer to a variable containing NULL. Passing an argument of the > latter kind twice without clearing it in between is wrong: if the > first call sets an error, it no longer points to NULL for the second > call. > > check_cache_dropped() calls error_setg() in a loop. It fails to break > the loop in one instance. If a subsequent iteration error_setg()s > again, it trips error_setv()'s assertion. > > Fix it to break the loop. > > Fixes: 31be8a2a97ecba7d31a82932286489cac318e9e9 > Cc: Stefan Hajnoczi > Signed-off-by: Markus Armbruster > Reviewed-by: Eric Blake > Message-Id: <20200422130719.28225-3-armbru@redhat.com> > --- > block/file-posix.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) Thanks for fixing this bug! Reviewed-by: Stefan Hajnoczi