Download raw body.
replace 2 last instances of strncpy with strlcpy
Thanks for your reply. It took quite a bit of pondering about the subtle
difference, but now it makes sense.
BR
Han
On 2/24/26 11:36 PM, Omar Polo wrote:
> Hello,
>
> Han Boetes <hboetes@gmail.com> wrote:
>> I would also like to propose this minor diff.
> On this one instead I'm a little bit on the fence.
>
> I think that strncpy in this case is a bit better than strlcpy because
> we're copying a string NOT until the NUL terminator at the end. There
> is also the needed bounds checking on the destination buffer.
>
> strlcpy instead is *generally* used to copy the whole string into a
> different buffer.
>
> Now, the way you're using strlcpy() would produce the same effect, but I
> think that using strncpy here is slightly more clear.
>
>> BR
>> Han
>>
> (i'm reattaching the diff, as it was mangled, just for the archive)
>
> diff /home/op/w/mg
> path + /home/op/w/mg
> commit - bb4e7911d276b83dbf547938ad8bc12ff94c2d0e
> blob - e4a539de6caf5bcea204637f6d994b043726ef1a
> file + extend.c
> --- extend.c
> +++ extend.c
> @@ -600,10 +600,8 @@ evalbuffer(int f, int n)
> llen = llength(lp);
> if (llen >= BUFSIZE)
> return (FALSE);
> - (void)strncpy(excbuf, ltext(lp), llen);
> + (void)strlcpy(excbuf, ltext(lp), llen + 1);
>
> - /* make sure the line is terminated */
> - excbuf[llen] = '\0';
> if ((s = excline(excbuf, llen, lnum)) != TRUE) {
> cleanup();
> return (s);
> commit - bb4e7911d276b83dbf547938ad8bc12ff94c2d0e
> blob - 8c9d797334d728c729efb261637974c9f66f9a60
> file + tags.c
> --- tags.c
> +++ tags.c
> @@ -466,8 +466,7 @@ curtoken(int f, int n, char *token)
> r = FALSE;
> goto cleanup;
> }
> - strncpy(token, ltext(curwp->w_dotp) + tdoto, size);
> - token[size] = '\0';
> + strlcpy(token, ltext(curwp->w_dotp) + tdoto, size + 1);
> r = TRUE;
>
> cleanup:
replace 2 last instances of strncpy with strlcpy