do_logdump may jump to errout if fopen(out_file) fails,
but in that case out_file is NULL, and fclose will segfault.
Signed-off-by: Eric Sandeen <[email protected]>
---
diff --git a/debugfs/logdump.c b/debugfs/logdump.c
index 4818bc6..9a7108a 100644
--- a/debugfs/logdump.c
+++ b/debugfs/logdump.c
@@ -259,7 +259,7 @@ void do_logdump(int argc, char **argv)
close(journal_fd);
errout:
- if (out_file != stdout)
+ if (out_file && (out_file != stdout))
fclose(out_file);
return;
On Fri, Jun 26, 2009 at 01:57:39PM -0500, Eric Sandeen wrote:
> do_logdump may jump to errout if fopen(out_file) fails,
> but in that case out_file is NULL, and fclose will segfault.
>
> Signed-off-by: Eric Sandeen <[email protected]>
Thanks, applied.
- Ted
Eric Sandeen <[email protected]> writes:
> do_logdump may jump to errout if fopen(out_file) fails,
> but in that case out_file is NULL, and fclose will segfault.
You should report that segfault to glibc authors too.
On Tue, Jun 30, 2009 at 05:44:55PM +0200, Thierry Vignaud wrote:
> Eric Sandeen <[email protected]> writes:
>
> > do_logdump may jump to errout if fopen(out_file) fails,
> > but in that case out_file is NULL, and fclose will segfault.
>
> You should report that segfault to glibc authors too.
It would be robust for glibc to code fclose() defensively such that it
would survive a null pointer, but I don't think it's technically
required by the ANSI or POSIX spec.
- Ted
On Tue, 2009-06-30 at 12:39 -0400, Theodore Tso wrote:
> On Tue, Jun 30, 2009 at 05:44:55PM +0200, Thierry Vignaud wrote:
> > Eric Sandeen <[email protected]> writes:
> >
> > > do_logdump may jump to errout if fopen(out_file) fails,
> > > but in that case out_file is NULL, and fclose will segfault.
> >
> > You should report that segfault to glibc authors too.
>
> It would be robust for glibc to code fclose() defensively such that it
> would survive a null pointer, but I don't think it's technically
> required by the ANSI or POSIX spec.
It's the programmer's responsibility to write the following:
if (fp)
fclose(fp);
--
http://www.munted.org.uk
One very high maintenance cat living here.