From: Eric Bollengier Date: Tue, 21 Dec 2021 12:12:03 +0000 (+0100) Subject: Check both io->status and return code in plugin_verify_data_update() X-Git-Tag: Beta-15.0.0~708 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87e2c9b65a4a7d76b78baf074e93a49a798cddb3;p=thirdparty%2Fbacula.git Check both io->status and return code in plugin_verify_data_update() --- diff --git a/bacula/src/filed/fd_plugins.c b/bacula/src/filed/fd_plugins.c index b05795967..7682bfa19 100644 --- a/bacula/src/filed/fd_plugins.c +++ b/bacula/src/filed/fd_plugins.c @@ -2704,16 +2704,15 @@ bRC plugin_verify_data_update(JCR *jcr, char *data, int size) io.win32 = false; io.lerror = 0; io.status = -1; - plug_func(jcr->plugin)->pluginIO(jcr->plugin_ctx, &io); + ret = plug_func(jcr->plugin)->pluginIO(jcr->plugin_ctx, &io); if (io.win32) { errno = b_errno_win32; } else { errno = io.io_errno; } - if (io.status != 0) { + if (io.status < 0) { ret = bRC_Error; } - } } jcr->plugin_ctx = NULL; @@ -2762,13 +2761,13 @@ bRC plugin_verify_data_open(JCR *jcr, ATTR *attr) io.win32 = false; io.lerror = 0; io.status = -1; - plug_func(jcr->plugin)->pluginIO(jcr->plugin_ctx, &io); + bRC ret = plug_func(jcr->plugin)->pluginIO(jcr->plugin_ctx, &io); if (io.win32) { errno = b_errno_win32; } else { errno = io.io_errno; } - if (io.status >= 0) { // -1 in case of error + if (ret == bRC_OK && io.status >= 0) { // -1 in case of error bctx->verifyFileCalled = true; } }