From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Alexander Graf <agraf@suse.de>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: [Qemu-devel] S390: file size checking in load_image_targphys and certain ram sizes
Date: Thu, 03 May 2012 15:36:17 +0200 [thread overview]
Message-ID: <4FA289D1.60700@de.ibm.com> (raw)
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,
next reply other threads:[~2012-05-03 13:36 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-03 13:36 Christian Borntraeger [this message]
2012-05-03 13:51 ` [Qemu-devel] S390: file size checking in load_image_targphys and certain ram sizes Alexander Graf
2012-05-03 14:27 ` [Qemu-devel] [PATCH] Fix size checking in load_image_targphys to accept max_size > INT_MAX Christian Borntraeger
2012-05-03 14:33 ` Peter Maydell
2012-05-04 14:05 ` Christian Borntraeger
2012-05-09 10:42 ` Christian Borntraeger
2012-05-16 10:29 ` Christian Borntraeger
2012-05-18 0:18 ` Alexander Graf
2012-05-18 0:26 ` Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FA289D1.60700@de.ibm.com \
--to=borntraeger@de.ibm.com \
--cc=agraf@suse.de \
--cc=benh@kernel.crashing.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.