Am 01.11.2010 20:51, schrieb Alexander Graf:
On 01.11.2010, at 14:42, Stefan Weil wrote:

Am 01.11.2010 19:29, schrieb Blue Swirl:
On Mon, Nov 1, 2010 at 3:01 PM, Alexander Graf<ag...@suse.de>   wrote:

---
  hw/elf_ops.h |   61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
  hw/loader.c  |    7 ++++++
  hw/loader.h  |    3 ++
  3 files changed, 70 insertions(+), 1 deletions(-)

diff --git a/hw/elf_ops.h b/hw/elf_ops.h
index 8b63dfc..645d058 100644
--- a/hw/elf_ops.h
+++ b/hw/elf_ops.h
@@ -189,6 +189,44 @@ static int glue(load_symbols, SZ)(struct elfhdr *ehdr, int 
fd, int must_swab,
     return -1;
  }

+static void glue(elf_read_notes, SZ)(uint8_t *data, int data_len,
+                                     ElfHandlers *handlers, int must_swab)
+{
+    uint8_t *p = data;
+
+    while ((ulong)&p[3]<   (ulong)&data[data_len]) {

Please use 'unsigned long'.

Why is a type cast used here? I see no reason for it.
Pointers can't be compared, you have to cast them to values first.


Alex

No. Pointers of same type which are not void pointers can be compared.

There is even a data type ptrdiff_t, so you can also compare their
difference with zero.

Regards,
Stefan



Reply via email to