Re: [PATCH] build system: fix potential buffer overflow

"Roberto A. Foglietta via busybox" <[email protected]> Mon, 30 Mar 2026 02:02:10 +0200
Newsgroups gmane.linux.busybox
Message-ID <CAJGKYO44FO7PbERe+yrkozJUH4SyCqBucLgu5TN+1WhpQEuTEw@mail.gmail.com>
On Sun, 29 Mar 2026 at 17:52, Michael D. Setzer II via busybox
<[email protected]> wrote:
>
> On 29 Mar 2026 at 13:20, Alyssa Ross via busybox wrote:
>
> To:                     [email protected]
> Subject:                [PATCH] build system: fix potential buffer overflow
> Date sent:              Sun, 29 Mar 2026 13:20:36 +0200
> From:                   Alyssa Ross via busybox <[email protected]>
> Send reply to:          Alyssa Ross <[email protected]>
>
> > This could potentially write one byte past the end of line.
> > Identified by fortify-headers.
> > ---
> >  scripts/basic/split-include.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/scripts/basic/split-include.c b/scripts/basic/split-include.c
> > index 6ef29195e..93011d511 100644
> > --- a/scripts/basic/split-include.c
> > +++ b/scripts/basic/split-include.c
> > @@ -195,7 +195,7 @@ int main(int argc, const char * argv [])
> >       ERROR_EXIT( "find" );
> >
> >      line[0] = '\n';
> > -    while (fgets(line+1, buffer_size, fp_find))
> > +    while (fgets(line+1, buffer_size-1, fp_find))
> >      {
> >       if (strstr(list_target, line) == NULL)
> >       {
> > --
> > 2.53.0
> >
>
> Question: Looked at file and there are multiple fgets lines.
>
> cat -n split-include.c | grep fgets
>    105      while (fgets(line, buffer_size, fp_config))
>    134              if (!fgets(old_line, buffer_size, fp_target) &&
> ferror(fp_target))
>    189       * fgets gives the incoming names a terminating \n.
>    198      while (fgets(line+1, buffer_size, fp_find))
>
> 189 is part of a comment, but wouldn't fix also apply to other lines?
>

Other lines do not have line+1 therefore they do not need buffer_size-1.

Anyway the "trial" period of me dealing with busybox has expired.

Good luck, R-