Welcome! Log In Create A New Profile

Advanced

Re: [PATCH v2] Removed the casts within ngx_memcmp()

Alex Colomar
November 30, 2022 05:50AM
Hello Maxim!

On 11/30/22 05:22, Maxim Dounin wrote:
> Hello!
>
> Ping.

Sorry, I didn't know you were waiting for my confirmation.

>
> On Wed, Nov 09, 2022 at 06:03:24PM +0300, Maxim Dounin wrote:
>
> [...]
>
>> # HG changeset patch
>> # User Maxim Dounin <mdounin@mdounin.ru>
>> # Date 1668004692 -10800
>> # Wed Nov 09 17:38:12 2022 +0300
>> # Node ID fc79ea0724a92c1f463625a11ed4cb785cd342b7
>> # Parent 42bc158a47ecb3c2bd0396c723c307c757f2770e
>> Fixed alignment of ngx_memmove()/ngx_movemem() macro definitions.

Makes sense.

>>
>> diff --git a/src/core/ngx_string.h b/src/core/ngx_string.h
>> --- a/src/core/ngx_string.h
>> +++ b/src/core/ngx_string.h
>> @@ -140,8 +140,8 @@ ngx_copy(u_char *dst, u_char *src, size_
>> #endif
>>
>>
>> -#define ngx_memmove(dst, src, n) (void) memmove(dst, src, n)
>> -#define ngx_movemem(dst, src, n) (((u_char *) memmove(dst, src, n)) + (n))
>> +#define ngx_memmove(dst, src, n) (void) memmove(dst, src, n)
>> +#define ngx_movemem(dst, src, n) (((u_char *) memmove(dst, src, n)) + (n))
>>
>>
>> /* msvc and icc7 compile memcmp() to the inline loop */
>> # HG changeset patch
>> # User Maxim Dounin <mdounin@mdounin.ru>
>> # Date 1668005196 -10800
>> # Wed Nov 09 17:46:36 2022 +0300
>> # Node ID 5269880f00df1e5ae08299165ec43435b759c5a3
>> # Parent fc79ea0724a92c1f463625a11ed4cb785cd342b7
>> Removed casts from ngx_memcmp() macro.
>>
>> Casts are believed to be not needed, since memcmp() has "const void *"
>> arguments since introduction of the "void" type in C89. And on pre-C89
>> platforms nginx is unlikely to compile without warnings anyway, as there
>> are no casts in memcpy() and memmove() calls.
>>
>> These casts were added in 1648:89a47f19b9ec without any details on why they
>> were added, and Igor does not remember details either. The most plausible
>> explanation is that they were copied from ngx_strcmp() and were not really
>> needed even at that time.
>>
>> Prodded by Alejandro Colomar.

And of course, this patch LGTM :)

Cheers,

Alex

>>
>> diff --git a/src/core/ngx_string.h b/src/core/ngx_string.h
>> --- a/src/core/ngx_string.h
>> +++ b/src/core/ngx_string.h
>> @@ -145,7 +145,7 @@ ngx_copy(u_char *dst, u_char *src, size_
>>
>>
>> /* msvc and icc7 compile memcmp() to the inline loop */
>> -#define ngx_memcmp(s1, s2, n) memcmp((const char *) s1, (const char *) s2, n)
>> +#define ngx_memcmp(s1, s2, n) memcmp(s1, s2, n)
>>
>>
>> u_char *ngx_cpystrn(u_char *dst, u_char *src, size_t n);
>

--
http://www.alejandro-colomar.es/

_______________________________________________
nginx-devel mailing list -- nginx-devel@nginx.org
To unsubscribe send an email to nginx-devel-leave@nginx.org
Subject Author Views Posted

[PATCH] Removed the unsafe ngx_memcmp() wrapper for memcmp(3)

Alejandro Colomar 508 November 04, 2022 11:26AM

Re: [PATCH] Removed the unsafe ngx_memcmp() wrapper for memcmp(3)

Alejandro Colomar 112 November 04, 2022 11:30AM

Re: [PATCH] Removed the unsafe ngx_memcmp() wrapper for memcmp(3)

Maxim Dounin 115 November 04, 2022 10:40PM

Re: [PATCH] Removed the unsafe ngx_memcmp() wrapper for memcmp(3)

Alejandro Colomar 101 November 06, 2022 05:52PM

Re: [PATCH] Removed the unsafe ngx_memcmp() wrapper for memcmp(3)

Maxim Dounin 98 November 08, 2022 04:52AM

Re: [PATCH] Removed the unsafe ngx_memcmp() wrapper for memcmp(3)

Alejandro Colomar 136 November 08, 2022 05:50AM

[PATCH v2] Removed the casts within ngx_memcmp()

Alejandro Colomar 92 November 08, 2022 05:58AM

Re: [PATCH v2] Removed the casts within ngx_memcmp()

Maxim Dounin 91 November 09, 2022 10:04AM

Re: [PATCH v2] Removed the casts within ngx_memcmp()

Maxim Dounin 108 November 29, 2022 11:24PM

Re: [PATCH v2] Removed the casts within ngx_memcmp()

Alex Colomar 79 November 30, 2022 05:50AM

Re: [PATCH v2] Removed the casts within ngx_memcmp()

Maxim Dounin 125 November 30, 2022 08:22PM

Re: [PATCH v2] Removed the casts within ngx_memcmp()

Sergey Kandaurov 108 November 30, 2022 07:18AM

Re: [PATCH v2] Removed the casts within ngx_memcmp()

Maxim Dounin 82 November 30, 2022 08:08PM

u_char vs char (was: [PATCH] Removed the unsafe ngx_memcmp() wrapper for memcmp(3))

Alejandro Colomar 94 November 08, 2022 06:18AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 310
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready