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:
@@ -1389,7 +1389,7 @@ nxt_conf_json_parse_value(nxt_mp_t *mp, nxt_conf_value_t *value, u_char *start,
|
||||
|
||||
case 't':
|
||||
if (nxt_fast_path(end - start >= 4
|
||||
&& nxt_memcmp(start, "true", 4) == 0))
|
||||
&& memcmp(start, "true", 4) == 0))
|
||||
{
|
||||
value->u.boolean = 1;
|
||||
value->type = NXT_CONF_VALUE_BOOLEAN;
|
||||
@@ -1401,7 +1401,7 @@ nxt_conf_json_parse_value(nxt_mp_t *mp, nxt_conf_value_t *value, u_char *start,
|
||||
|
||||
case 'f':
|
||||
if (nxt_fast_path(end - start >= 5
|
||||
&& nxt_memcmp(start, "false", 5) == 0))
|
||||
&& memcmp(start, "false", 5) == 0))
|
||||
{
|
||||
value->u.boolean = 0;
|
||||
value->type = NXT_CONF_VALUE_BOOLEAN;
|
||||
@@ -1413,7 +1413,7 @@ nxt_conf_json_parse_value(nxt_mp_t *mp, nxt_conf_value_t *value, u_char *start,
|
||||
|
||||
case 'n':
|
||||
if (nxt_fast_path(end - start >= 4
|
||||
&& nxt_memcmp(start, "null", 4) == 0))
|
||||
&& memcmp(start, "null", 4) == 0))
|
||||
{
|
||||
value->type = NXT_CONF_VALUE_NULL;
|
||||
return start + 4;
|
||||
|
||||
Reference in New Issue
Block a user