Removed the unsafe nxt_memcmp() wrapper for memcmp(3).
The casts are unnecessary, since memcmp(3)'s arguments are 'void *'. It might have been necessary in the times of K&R, where 'void *' didn't exist. Nowadays, it's unnecessary, and _very_ unsafe, since casts can hide all classes of bugs by silencing most compiler warnings. The changes from nxt_memcmp() to memcmp(3) were scripted: $ find src/ -type f \ | grep '\.[ch]$' \ | xargs sed -i 's/nxt_memcmp/memcmp/' Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Signed-off-by: Alejandro Colomar <alx@nginx.com>
This commit is contained in:
@@ -66,10 +66,6 @@ nxt_cpymem(void *dst, const void *src, size_t length)
|
||||
(void) memmove(dst, src, length)
|
||||
|
||||
|
||||
#define nxt_memcmp(s1, s2, length) \
|
||||
memcmp((char *) s1, (char *) s2, length)
|
||||
|
||||
|
||||
#define nxt_memchr(s, c, length) \
|
||||
memchr((char *) s, c, length)
|
||||
|
||||
@@ -132,7 +128,7 @@ NXT_EXPORT char *nxt_str_cstrz(nxt_mp_t *mp, const nxt_str_t *src);
|
||||
|
||||
#define nxt_strstr_eq(s1, s2) \
|
||||
(((s1)->length == (s2)->length) \
|
||||
&& (nxt_memcmp((s1)->start, (s2)->start, (s1)->length) == 0))
|
||||
&& (memcmp((s1)->start, (s2)->start, (s1)->length) == 0))
|
||||
|
||||
|
||||
#define nxt_strcasestr_eq(s1, s2) \
|
||||
@@ -141,11 +137,11 @@ NXT_EXPORT char *nxt_str_cstrz(nxt_mp_t *mp, const nxt_str_t *src);
|
||||
|
||||
|
||||
#define nxt_str_eq(s, p, _length) \
|
||||
(((s)->length == _length) && (nxt_memcmp((s)->start, p, _length) == 0))
|
||||
(((s)->length == _length) && (memcmp((s)->start, p, _length) == 0))
|
||||
|
||||
|
||||
#define nxt_str_start(s, p, _length) \
|
||||
(((s)->length >= _length) && (nxt_memcmp((s)->start, p, _length) == 0))
|
||||
(((s)->length >= _length) && (memcmp((s)->start, p, _length) == 0))
|
||||
|
||||
|
||||
#define nxt_strchr_eq(s, c) \
|
||||
|
||||
Reference in New Issue
Block a user