libc: fix memchr implementation

The previous implementation could behave incorrectly because of the sign
extension of the char when compared to the int.

Change-Id: I397838b0ec87a6f1af6972d022a8c19a5184b447
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
diff --git a/lib/libc/memchr.c b/lib/libc/memchr.c
index 0fe0535..8cbb715 100644
--- a/lib/libc/memchr.c
+++ b/lib/libc/memchr.c
@@ -9,10 +9,10 @@
 
 void *memchr(const void *src, int c, size_t len)
 {
-	const char *s = src;
+	const unsigned char *s = src;
 
 	while (len--) {
-		if (*s == c)
+		if (*s == (unsigned char)c)
 			return (void *) s;
 		s++;
 	}