Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 26 Mar 2019 11:07:27 -0400
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: [PATCH 2/2] avoid passing a parameter

On Tue, Mar 26, 2019 at 09:36:48AM +0000, Frediano Ziglio wrote:
> Make code slightly smaller.
> "file" should not be long and it should fit in NAME_MAX so
> this code would be faster only rarely.
> ---
>  src/process/execvp.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/process/execvp.c b/src/process/execvp.c
> index ef3b9dd5..a2726af9 100644
> --- a/src/process/execvp.c
> +++ b/src/process/execvp.c
> @@ -19,7 +19,7 @@ int __execvpe(const char *file, char *const argv[], char *const envp[])
>  		return execve(file, argv, envp);
>  
>  	if (!path) path = "/usr/local/bin:/bin:/usr/bin";
> -	k = strnlen(file, NAME_MAX+1);
> +	k = strlen(file);
>  	if (k > NAME_MAX) {
>  		errno = ENAMETOOLONG;
>  		return -1;
> -- 
> 2.20.1

Patch 1 looks ok, but patch 2 here is contrary to the direction I want
to take things in musl. Using strnlen everywhere that excess length is
an error is an idiom I'm trying to adopt all over. Here there's no
serious practical impact either way (size difference is tiny, input
string is not untrusted), but I still prefer use of the idiom.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.