summaryrefslogtreecommitdiff
path: root/kexec/lzma.c
AgeCommit message (Collapse)Author
2022-03-30kexec-tools: fix leak FILE pointer.Lichen Liu
Close fp if file size is smaller than 13 bytes. Fixes: dcfcc73c73e6 ("kexec-tools: Determine if the image is lzma commpressed") Signed-off-by: Lichen Liu <lichliu@redhat.com> Signed-off-by: Simon Horman <horms@verge.net.au>
2022-03-29kexec-tools: Determine if the image is lzma commpressedLichen Liu
Currently there are 2 functions for decompressing compressed image. The zlib_decompress_file() will determine if the image is compressed by gzip before read, but lzma_decompress_file() will not. This can cause misleading information to be printed when the image is not compressed by lzma and debug option is used: ]# kexec -d -s -l /boot/vmlinuz-5.14.10-300.fc35.x86_64 \ --initrd /boot/initramfs-5.14.10-300.fc35.x86_64.img \ --reuse-cmdline Try gzip decompression. Try LZMA decompression. lzma_decompress_file: read on /boot/vmlinuz-5.14.10-300.fc35.x86_64 of 65536 bytes failed Add a helper function is_lzma_file() to help behave consistently. Signed-off-by: Lichen Liu <lichliu@redhat.com> Signed-off-by: Simon Horman <horms@verge.net.au>
2015-02-09Fix zlib/lzma decompression.Yousong Zhou
Let {zlib,lzma}_decompress_file() return NULL if anything wrong happened to allow the other method to have a chance to run. Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> Signed-off-by: Simon Horman <horms@verge.net.au>
2012-06-27Fix format strings of die()Aleksey Makarov
One of them caused crash when user specifies a file that does not exist. Signed-off-by: Aleksey Makarov <aleksey.makarov@gmail.com> Removed trailing whitespace. Signed-off-by: Simon Horman <horms@verge.net.au>
2010-02-02Avoid possible overflows from signed/unsigned comparisonsSimon Horman
Signed-off-by: Simon Horman <horms@verge.net.au>
2010-02-02Mark unused parametersSimon Horman
Signed-off-by: Simon Horman <horms@verge.net.au>
2009-11-30lzma: Move the bulk of kexec-lzma.h into lzma.cSimon Horman
There isn't any need for anything in kexec-lzma.h other than a declaration of zlib_decompress_file(). Other being cleaner it also fixes a build problem when lzma support isn't being compiled in. $ make all i686-unknown-linux-gnu-gcc -Wall -Wextra -O2 -fomit-frame-pointer -pipe -fno-strict-aliasing -Wall -Wstrict-prototypes -I/home/horms/local/opt/crosstool/i686/gcc-3.4.5-glibc-2.3.6/i686-unknown-linux-gnu/include -I./include -I./util_lib/include -Iinclude/ -I./kexec/arch/i386/include -c -MD -o kexec/kexec.o kexec/kexec.c In file included from kexec/kexec.c:47: kexec/kexec-lzma.h:8:18: lzma.h: No such file or directory kexec/kexec.c: In function `locate_hole': kexec/kexec.c:203: warning: comparison between signed and unsigned It ought to be possible to just provide a stub for zlib_decompress_file() in kexec-lzma.h and not compile lzma.c at all in the case where lzma support isn't being compiled in. However I see no obvious way to do this with the existing build system. So I'd like to deal with that as a separate possible change. Changes as suggested by Eric W. Biederman. Cc: Florian Fainelli <florian@openwrt.org> Cc: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Simon Horman <horms@verge.net.au>
2009-11-30add support for loading lzma compressed kernelsFlorian Fainelli
This patch allows one to load a lzma compressed kernel using kexec -l. As I wanted the lzma code to be very similar to the existing zlib slurp_decompress I took lzread and associated routines from the cpio lzma support. Tested on my x86 laptop using the following commands: lzma e bzImage bzImage.lzma kexec -l bzImage.lzma Having lzma support is particularly useful on some embedded systems on which we have the kernel already lzma compressed and available on a mtd partition. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: Simon Horman <horms@verge.net.au>