arm-trusted-firmware/lib/libc/memchr.c
Ambroise Vincent 294062fabf 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>
2019-06-20 09:59:24 +01:00

21 lines
351 B
C

/*
* Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <stddef.h>
#include <string.h>
void *memchr(const void *src, int c, size_t len)
{
const unsigned char *s = src;
while (len--) {
if (*s == (unsigned char)c)
return (void *) s;
s++;
}
return NULL;
}