diff options
| author | Kees Cook <kees@kernel.org> | 2025-10-20 15:01:17 -0700 |
|---|---|---|
| committer | Kees Cook <kees@kernel.org> | 2026-01-17 11:00:37 -0800 |
| commit | fac4ab5cd0ad8d3abce6d2b519c9f0d26c8f2abc (patch) | |
| tree | 9185398c2bdb3fcf97dc909cb0aeeaa2956b16d3 /fs | |
| parent | a120a832e3ebca48474d7183ddeadf4138472535 (diff) | |
coredump: Use __counted_by_ptr for struct core_name::corename
Use the __counted_by annotation now available for struct pointer
members, __counted_by_ptr(). Move assignments to immediately
after allocation.
Link: https://patch.msgid.link/20251020220118.1226740-3-kees@kernel.org
Signed-off-by: Kees Cook <kees@kernel.org>
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/coredump.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/coredump.c b/fs/coredump.c index 8feb9c1cf83d..c7f75042831a 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -92,7 +92,7 @@ enum coredump_type_t { }; struct core_name { - char *corename; + char *corename __counted_by_ptr(size); int used, size; unsigned int core_pipe_limit; bool core_dumped; @@ -106,15 +106,15 @@ static int expand_corename(struct core_name *cn, int size) size = kmalloc_size_roundup(size); corename = krealloc(cn->corename, size, GFP_KERNEL); - if (!corename) return -ENOMEM; + cn->corename = corename; + cn->size = size; + if (size > core_name_size) /* racy but harmless */ core_name_size = size; - cn->size = size; - cn->corename = corename; return 0; } |
