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:
@@ -357,7 +357,7 @@ space_after_target:
|
||||
|
||||
} while (*p == ' ');
|
||||
|
||||
if (nxt_memcmp(p, "HTTP/", nxt_min(end - p, 5)) == 0) {
|
||||
if (memcmp(p, "HTTP/", nxt_min(end - p, 5)) == 0) {
|
||||
|
||||
switch (end - p) {
|
||||
case 8:
|
||||
@@ -412,7 +412,7 @@ space_after_target:
|
||||
|
||||
if (nxt_fast_path(ver.ui64 == http11.ui64
|
||||
|| ver.ui64 == http10.ui64
|
||||
|| (nxt_memcmp(ver.str, "HTTP/1.", 7) == 0
|
||||
|| (memcmp(ver.str, "HTTP/1.", 7) == 0
|
||||
&& ver.s.minor >= '0' && ver.s.minor <= '9')))
|
||||
{
|
||||
rp->version.ui64 = ver.ui64;
|
||||
@@ -464,7 +464,7 @@ space_after_target:
|
||||
return nxt_http_parse_field_name(rp, pos, end);
|
||||
}
|
||||
|
||||
if (nxt_memcmp(ver.s.prefix, "HTTP/", 5) == 0
|
||||
if (memcmp(ver.s.prefix, "HTTP/", 5) == 0
|
||||
&& ver.s.major >= '0' && ver.s.major <= '9'
|
||||
&& ver.s.point == '.'
|
||||
&& ver.s.minor >= '0' && ver.s.minor <= '9')
|
||||
|
||||
Reference in New Issue
Block a user