diff --git a/lib/elfboot.c b/lib/elfboot.c index ec31003314..f2c64f8296 100644 --- a/lib/elfboot.c +++ b/lib/elfboot.c @@ -132,12 +132,12 @@ static struct verify_callback *process_elf_notes( switch(hdr->n_type) { case EIN_PROGRAM_NAME: if (n_desc[hdr->n_descsz -1] == 0) { - program = n_desc; + program = (char *) n_desc; } break; case EIN_PROGRAM_VERSION: if (n_desc[hdr->n_descsz -1] == 0) { - version = n_desc; + version = (char *) n_desc; } break; case EIN_PROGRAM_CHECKSUM: diff --git a/lib/mem.c b/lib/mem.c index f5526bb6a1..ba4c60ca35 100644 --- a/lib/mem.c +++ b/lib/mem.c @@ -19,6 +19,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA * */ +#include /* this one is pretty stupid. Won't handle overlaps, it's not efficient, etc. */ /* Please don't be silly and inline these. Inlines are not as wonderful as people think */ @@ -40,10 +41,10 @@ void memset(void *v, unsigned char a, int len) /* did you ever notice that the memcmp web page does not specify * a signed or unsigned compare? It matters ... oh well, we assumed unsigned */ -int memcmp(const void *s1, const void *s2, size_t n) +int memcmp(const void *s1, const void *s2, int len) { - const unsigned char *d = s1 - const unsigned char *s = s2; + const unsigned char *d = (const unsigned char *)s1; + const unsigned char *s = (const unsigned char *)s2; while (len--){ if (*d < *s) return -1;