summaryrefslogtreecommitdiff
path: root/kexec/arch/i386/kexec-bzImage.c
diff options
context:
space:
mode:
Diffstat (limited to 'kexec/arch/i386/kexec-bzImage.c')
-rw-r--r--kexec/arch/i386/kexec-bzImage.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kexec/arch/i386/kexec-bzImage.c b/kexec/arch/i386/kexec-bzImage.c
index 825beee..c1345d5 100644
--- a/kexec/arch/i386/kexec-bzImage.c
+++ b/kexec/arch/i386/kexec-bzImage.c
@@ -44,7 +44,7 @@ static const int probe_debug = 0;
int bzImage_probe(const char *buf, off_t len)
{
struct x86_linux_header header;
- if (len < sizeof(header)) {
+ if ((uintmax_t)len < (uintmax_t)sizeof(header)) {
return -1;
}
memcpy(&header, buf, sizeof(header));
@@ -119,7 +119,7 @@ int do_bzImage_load(struct kexec_info *info,
/*
* Find out about the file I am about to load.
*/
- if (kernel_len < sizeof(setup_header)) {
+ if ((uintmax_t)kernel_len < (uintmax_t)sizeof(setup_header)) {
return -1;
}
memcpy(&setup_header, kernel, sizeof(setup_header));
@@ -136,7 +136,8 @@ int do_bzImage_load(struct kexec_info *info,
}
if (setup_header.protocol_version >= 0x0206) {
- if (command_line_len > setup_header.cmdline_size) {
+ if ((uintmax_t)command_line_len >
+ (uintmax_t)setup_header.cmdline_size) {
dbgprintf("Kernel command line too long for kernel!\n");
return -1;
}