[PATCH v4 0/6] initramfs: test and improve cpio hex header validation
From: David Disseldorp
Date: Sun Mar 29 2026 - 06:55:00 EST
Changes v4:
- rework initramfs_test changes to use an inject_ox parameter instead of
having tests pass through an unvalidated format string.
+ drop Andy's reviewed-by from 1/6 and 2/6 to account for changed test
+ 4/6 minor changes for test context and comment
- add review tags for 3/6, 5/6 and 6/6 following list feedback
----------------------------------------------------------------
v3: 20260323150054.3587083-1-andriy.shevchenko@xxxxxxxxxxxxxxx
The series that introduced simple_strntoul() had passed into kernel
without proper review and hence reinvented a wheel that's not needed.
Here is the refactoring to show that. It can go via PRINTK or VFS
tree.
I have tested this on x86, but I believe the same result will be
on big-endian CPUs (I deduced that from how strtox() works).
I also run KUnit tests.
Changelog v3:
- rebased on top of latest kernel
- squashed patches proposed by David
v2: 20260121172749.32322-1-ddiss@xxxxxxx
v1: 20260119204151.1447503-1-andriy.shevchenko@xxxxxxxxxxxxxxx
----------------------------------------------------------------
Andy Shevchenko (4):
initramfs: Sort headers alphabetically
initramfs: Refactor to use hex2bin() instead of custom approach
vsprintf: Revert "add simple_strntoul"
kstrtox: Drop extern keyword in the simple_strtox() declarations
David Disseldorp (2):
initramfs_test: add fill_cpio() inject_ox parameter
initramfs_test: test header fields with 0x hex prefix
include/linux/kstrtox.h | 9 +++--
init/initramfs.c | 68 ++++++++++++++++++++----------------
init/initramfs_test.c | 76 ++++++++++++++++++++++++++++++++++-------
lib/vsprintf.c | 7 ----
4 files changed, 105 insertions(+), 55 deletions(-)