[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] S390: file size checking in load_image_targphys and certain
From: |
Christian Borntraeger |
Subject: |
[Qemu-devel] S390: file size checking in load_image_targphys and certain ram sizes |
Date: |
Thu, 03 May 2012 15:36:17 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20120412 Thunderbird/11.0.1 |
Ben, Alex,
commit 17df768c1e4580f03301d18ea938d3557d441911
load_image_targphys() should enforce the max size
caused some problems with external kernel and specific ram sizes on s390:
We load the external kernel with
[...]
kernel_size = load_image_targphys(kernel_filename, 0, ram_size);
[...]
The problem is now, that load_image_targphys has max_sz as an int (32bit), but
ram_size is a ram_addr_t (64bit).
So for a ramsize of lets say 3GB the comparison in load_image_targphys fails:
if (size > max_sz) {
return -1;
}
There are several potential ways of solving, suggestions for a better solution
than the patch below are welcome.
diff --git a/hw/loader.c b/hw/loader.c
index 415cdce..8a6c99d 100644
--- a/hw/loader.c
+++ b/hw/loader.c
@@ -103,7 +103,7 @@ ssize_t read_targphys(const char *name,
/* return the size or -1 if error */
int load_image_targphys(const char *filename,
- target_phys_addr_t addr, int max_sz)
+ target_phys_addr_t addr, uint64_t max_sz)
{
int size;
diff --git a/hw/loader.h b/hw/loader.h
index fbcaba9..5cfa6df 100644
--- a/hw/loader.h
+++ b/hw/loader.h
@@ -4,7 +4,7 @@
/* loader.c */
int get_image_size(const char *filename);
int load_image(const char *filename, uint8_t *addr); /* deprecated */
-int load_image_targphys(const char *filename, target_phys_addr_t, int max_sz);
+int load_image_targphys(const char *filename, target_phys_addr_t, uint64_t);
int load_elf(const char *filename, uint64_t (*translate_fn)(void *, uint64_t),
void *translate_opaque, uint64_t *pentry, uint64_t *lowaddr,
uint64_t *highaddr, int big_endian, int elf_machine,
- [Qemu-devel] S390: file size checking in load_image_targphys and certain ram sizes,
Christian Borntraeger <=
- Re: [Qemu-devel] S390: file size checking in load_image_targphys and certain ram sizes, Alexander Graf, 2012/05/03
- [Qemu-devel] [PATCH] Fix size checking in load_image_targphys to accept max_size > INT_MAX, Christian Borntraeger, 2012/05/03
- Re: [Qemu-devel] [PATCH] Fix size checking in load_image_targphys to accept max_size > INT_MAX, Peter Maydell, 2012/05/03
- Re: [Qemu-devel] [PATCH] Fix size checking in load_image_targphys to accept max_size > INT_MAX, Christian Borntraeger, 2012/05/04
- Re: [Qemu-devel] [PATCH] Fix size checking in load_image_targphys to accept max_size > INT_MAX, Christian Borntraeger, 2012/05/09
- Re: [Qemu-devel] [PATCH] Fix size checking in load_image_targphys to accept max_size > INT_MAX, Christian Borntraeger, 2012/05/16
- Re: [Qemu-devel] [PATCH] Fix size checking in load_image_targphys to accept max_size > INT_MAX, Alexander Graf, 2012/05/17
- Re: [Qemu-devel] [PATCH] Fix size checking in load_image_targphys to accept max_size > INT_MAX, Anthony Liguori, 2012/05/17