[PATCH v2 02/22] coredump: refuse negative skips
From: Christian Brauner
Date: Wed Aug 19 2026 - 19:11:26 EST
The dump_skip_to() helper calculates a relative skip based on the
absolute positon of the coredump:
cprm->to_skip = pos - cprm->pos;
That's easy to mess up for callers and one already did. This risk
endless zero PAGE_SIZE loops or overwriting already written coredump
data thereby corrupting the dump.
I don't think skipping backwards has any meaning. So warn and refuse.
Signed-off-by: Christian Brauner (Amutable) <brauner@xxxxxxxxxx>
---
fs/coredump.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fs/coredump.c b/fs/coredump.c
index e68a76ff92a3..ac4e922c9cb9 100644
--- a/fs/coredump.c
+++ b/fs/coredump.c
@@ -1261,6 +1261,8 @@ EXPORT_SYMBOL(dump_emit);
void dump_skip_to(struct coredump_params *cprm, unsigned long pos)
{
+ if (WARN_ON_ONCE(pos < cprm->pos))
+ return;
cprm->to_skip = pos - cprm->pos;
}
EXPORT_SYMBOL(dump_skip_to);
--
2.53.0