On Tue, Jan 10, 2017 at 08:56:46AM +0100, g...@suckless.org wrote:
> commit b95c8ed79e5d5322dd3c5c386c3acd62105ac116
> Author:     Roberto E. Vargas Caballero <roberto.var...@igrid-td.com>
> AuthorDate: Tue Jan 10 08:46:48 2017 +0100
> Commit:     Roberto E. Vargas Caballero <roberto.var...@igrid-td.com>
> CommitDate: Tue Jan 10 08:49:17 2017 +0100
> 
>     ed: Don't use strlcpy()
>     
>     All the buffers related to files have FILENAME_MAX size, so it is 
> impossible
>     to have any buffer overrun.
> 
> diff --git a/ed.c b/ed.c
> index f579116..82fb784 100644
> --- a/ed.c
> +++ b/ed.c
> @@ -611,7 +611,7 @@ dowrite(const char *fname, int trunc)
>       curln = line2;
>       if (fclose(fp))
>               error("input/output error");
> -     if (strlcpy(savfname, fname, sizeof(savfname)) >= sizeof(savfname))
> +     if (strcpy(savfname, fname, sizeof(savfname)) >= sizeof(savfname))
>               error("file name too long");

I'm not sure if the strcpy check makes sense here. Is it intended?

To:
        strcpy(savfname, fname, sizeof(savfname));

>       modflag = 0;
>       curln = line;
> @@ -743,8 +743,7 @@ getfname(char comm)
>       } else {
>               *bp = '\0';
>               if (savfname[0] == '\0' || comm == 'e' || comm == 'f')
> -                     if (strlcpy(savfname, fname, sizeof(savfname)) >= 
> sizeof(savfname))
> -                             error("file name too long");
> +                     strcpy(savfname, fname);
>               return fname;
>       }
>  
> 

-- 
Kind regards,
Hiltjo

Reply via email to