kbuild: fixdep: Check fstat(2) return value
diff mbox

Message ID 1449523568-31084-1-git-send-email-trini@konsulko.com
State New
Headers show

Commit Message

Tom Rini Dec. 7, 2015, 9:26 p.m. UTC
Coverity has recently added a check that will find when we don't check
the return code from fstat(2).  Copy/paste the checking logic that
print_deps() has with an appropriate re-wording of the perror() message.

Cc: Michal Marek <mmarek@suse.com>
Cc: linux-kbuild@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Tom Rini <trini@konsulko.com>

---
Note that I don't have a CID here was I found this in U-Boot and the
kernel hasn't yet done a build with this test being enabled.
---
 scripts/basic/fixdep.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Tom Rini Jan. 16, 2016, 7:14 p.m. UTC | #1
On Mon, Dec 7, 2015 at 4:26 PM, Tom Rini <trini@konsulko.com> wrote:

> Coverity has recently added a check that will find when we don't check
> the return code from fstat(2).  Copy/paste the checking logic that
> print_deps() has with an appropriate re-wording of the perror() message.
>
> Cc: Michal Marek <mmarek@suse.com>
> Cc: linux-kbuild@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Tom Rini <trini@konsulko.com>
>
> ---
> Note that I don't have a CID here was I found this in U-Boot and the
> kernel hasn't yet done a build with this test being enabled.
> ---
>  scripts/basic/fixdep.c |    6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
> index c68fd61..e3d9678 100644
> --- a/scripts/basic/fixdep.c
> +++ b/scripts/basic/fixdep.c
> @@ -274,7 +274,11 @@ static void do_config_file(const char *filename)
>                 perror(filename);
>                 exit(2);
>         }
> -       fstat(fd, &st);
> +       if (fstat(fd, &st) < 0) {
> +               fprintf(stderr, "fixdep: error fstat'ing config file: ");
> +               perror(filename);
> +               exit(2);
> +       }
>         if (st.st_size == 0) {
>                 close(fd);
>                 return;

Adding stable@ since this applies to 4.4.  Any comments?  Thanks!
Tom Rini Feb. 16, 2016, 3:32 p.m. UTC | #2
On Sat, Jan 16, 2016 at 02:11:16PM -0500, Tom Rini wrote:
> On Mon, Dec 7, 2015 at 4:26 PM, Tom Rini <trini@konsulko.com> wrote:
> 
> > Coverity has recently added a check that will find when we don't check
> > the return code from fstat(2).  Copy/paste the checking logic that
> > print_deps() has with an appropriate re-wording of the perror() message.
> >
> > Cc: Michal Marek <mmarek@suse.com>
> > Cc: linux-kbuild@vger.kernel.org
> > Cc: linux-kernel@vger.kernel.org
> > Signed-off-by: Tom Rini <trini@konsulko.com>
> >
> > ---
> > Note that I don't have a CID here was I found this in U-Boot and the
> > kernel hasn't yet done a build with this test being enabled.
> > ---
> >  scripts/basic/fixdep.c |    6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
> > index c68fd61..e3d9678 100644
> > --- a/scripts/basic/fixdep.c
> > +++ b/scripts/basic/fixdep.c
> > @@ -274,7 +274,11 @@ static void do_config_file(const char *filename)
> >                 perror(filename);
> >                 exit(2);
> >         }
> > -       fstat(fd, &st);
> > +       if (fstat(fd, &st) < 0) {
> > +               fprintf(stderr, "fixdep: error fstat'ing config file: ");
> > +               perror(filename);
> > +               exit(2);
> > +       }
> >         if (st.st_size == 0) {
> >                 close(fd);
> >                 return;
> 
> 
> Adding stable@ since this applies to 4.4.  Any comments?  Thanks!

Ping?  Thanks!
Michal Marek Feb. 17, 2016, 9:58 p.m. UTC | #3
On Tue, Feb 16, 2016 at 10:32:15AM -0500, Tom Rini wrote:
> Ping?  Thanks!

Applied now, thanks.

Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
index c68fd61..e3d9678 100644
--- a/scripts/basic/fixdep.c
+++ b/scripts/basic/fixdep.c
@@ -274,7 +274,11 @@  static void do_config_file(const char *filename)
 		perror(filename);
 		exit(2);
 	}
-	fstat(fd, &st);
+	if (fstat(fd, &st) < 0) {
+		fprintf(stderr, "fixdep: error fstat'ing config file: ");
+		perror(filename);
+		exit(2);
+	}
 	if (st.st_size == 0) {
 		close(fd);
 		return;