There are a number of stack, heap and data-segment buffers which are unnecessary for initramfs unpacking. This patchset attempts to remove them by: - parsing cpio hex strings in place, instead of copying them for nul-termination. (Patches 1 & 2). - reusing a single heap buffer for cpio header, file and symlink paths, instead of three separate buffers. (Patches 3 & 4). - reusing the heap-allocated cpio buffer across both builtin and bootloader-provided unpack attempts. (Patch 5). - reusing the heap-allocated cpio buffer for error messages on FSM-exit, instead of a data-segment buffer. (Patch 6). I've flagged this as an RFC as I'd like to improve the commit messages and also provide more thorough testing, likely via kunit / kselftest integration. Feedback appreciated. David Disseldorp (6): vsprintf: add simple_strntoul initramfs: avoid memcpy for hex header fields initramfs: remove extra symlink path buffer initramfs: merge header_buf and name_buf initramfs: reuse buf for built-in and bootloader initramfs initramfs: avoid static buffer for error message include/linux/kstrtox.h | 1 + init/initramfs.c | 50 +++++++++++++++++++++-------------------- lib/vsprintf.c | 7 ++++++ 3 files changed, 34 insertions(+), 24 deletions(-)