All Virtuozzo development lists (kernel + QEMU)
 help / color / mirror / Atom feed
From: Konstantin Khorenko <khorenko@virtuozzo.com>
Subject: [Devel] [PATCH vz10 v2 1/2] dm-ploop: use the ERRNO fault injection class for ploop_get_delta_file()
Date: Wed, 19 Aug 2026 18:56:28 +0200	[thread overview]
Message-ID: <20260819165629.497296-1-khorenko@virtuozzo.com> (raw)
In-Reply-To: <20260706110002.1024515-21-khorenko@virtuozzo.com>

ploop_get_delta_file() returns a valid struct file * or an ERR_PTR(),
never NULL, and its only caller relies on exactly that.

The function, however, is annotated as

	ALLOW_ERROR_INJECTION(ploop_get_delta_file, ERRNO_NULL);

So injecting a failure the default way makes the function return NULL,
the NULL sails past IS_ERR() and vfs_fsync() dereferences it.

This is the annotation misdescribing the function rather than a missing
check in the caller: NULL is not a value ploop_get_delta_file() can ever
return. Use the ERRNO class, which injects error pointers only.

Fixes: 4fc49f0700e2 ("dm-ploop: Allow fault injection for all ploop functions")
Feature: dm-ploop: ploop target driver
https://virtuozzo.atlassian.net/browse/VSTOR-137234
Signed-off-by: Konstantin Khorenko <khorenko@virtuozzo.com>
Reviewed-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
---
 drivers/md/dm-ploop-target.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/md/dm-ploop-target.c b/drivers/md/dm-ploop-target.c
index 0de0e84d440d0..7dab95402def7 100644
--- a/drivers/md/dm-ploop-target.c
+++ b/drivers/md/dm-ploop-target.c
@@ -255,7 +255,7 @@ static struct file *ploop_get_delta_file(struct ploop *ploop, int fd)
 	return ERR_PTR(ret);
 
 }
-ALLOW_ERROR_INJECTION(ploop_get_delta_file, ERRNO_NULL);
+ALLOW_ERROR_INJECTION(ploop_get_delta_file, ERRNO);
 
 static int ploop_check_top_delta(struct ploop *ploop, struct file *file)
 {
-- 
2.43.0


       reply	other threads:[~2026-08-19 16:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20260706110002.1024515-21-khorenko@virtuozzo.com>
2026-08-19 16:56 ` Konstantin Khorenko [this message]
2026-08-19 16:56   ` [Devel] [PATCH vz10 v2 2/2] dm-ploop: fix NULL deref in ploop_destroy() when ploop_ctr() failed early Konstantin Khorenko
2026-08-19 16:57     ` [Devel] [PATCH RHEL10 COMMIT] " Konstantin Khorenko
2026-08-19 16:57   ` [Devel] [PATCH RHEL10 COMMIT] dm-ploop: use the ERRNO fault injection class for ploop_get_delta_file() Konstantin Khorenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260819165629.497296-1-khorenko@virtuozzo.com \
    --to=khorenko@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.