remove redundant condition in memccpy

Submitted by Alexander Monakov on March 9, 2020, 6:32 p.m.

Details

Message ID 20200309183216.31559-1-amonakov@ispras.ru
State New
Series "remove redundant condition in memccpy"
Headers show

Commit Message

Alexander Monakov March 9, 2020, 6:32 p.m.
Commit d9bdfd164 ("fix memccpy to not access buffer past given size")
correctly added a check for 'n' nonzero, but made the pre-existing test
'*s==c' redundant: n!=0 implies *s==c. Remove the unnecessary check.

Reported by Alexey Izbyshev.
---

Let me also point out that the aforementioned change did not appear
on this mailing list.

Alexander

 src/string/memccpy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/src/string/memccpy.c b/src/string/memccpy.c
index 00c18e2b..3b0a3700 100644
--- a/src/string/memccpy.c
+++ b/src/string/memccpy.c
@@ -29,6 +29,6 @@  void *memccpy(void *restrict dest, const void *restrict src, int c, size_t n)
 #endif
 	for (; n && (*d=*s)!=c; n--, s++, d++);
 tail:
-	if (n && *s==c) return d+1;
+	if (n) return d+1;
 	return 0;
 }

Comments

Rich Felker March 20, 2020, 7:46 p.m.
On Mon, Mar 09, 2020 at 09:32:16PM +0300, Alexander Monakov wrote:
> 
> Commit d9bdfd164 ("fix memccpy to not access buffer past given size")
> correctly added a check for 'n' nonzero, but made the pre-existing test
> '*s==c' redundant: n!=0 implies *s==c. Remove the unnecessary check.
> 
> Reported by Alexey Izbyshev.
> ---
> 
> Let me also point out that the aforementioned change did not appear
> on this mailing list.
> 
> Alexander
> 
>  src/string/memccpy.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

> diff --git a/src/string/memccpy.c b/src/string/memccpy.c
> index 00c18e2b..3b0a3700 100644
> --- a/src/string/memccpy.c
> +++ b/src/string/memccpy.c
> @@ -29,6 +29,6 @@ void *memccpy(void *restrict dest, const void *restrict src, int c, size_t n)
>  #endif
>  	for (; n && (*d=*s)!=c; n--, s++, d++);
>  tail:
> -	if (n && *s==c) return d+1;
> +	if (n) return d+1;
>  	return 0;
>  }


Thanks, applying.

Rich