On 18 August 2014 09:00, zhanghailiang <zhang.zhanghaili...@huawei.com> wrote: > From: Li Liu <john.li...@huawei.com> > > fopen() may return NULL which will cause setbuf() segmentfault > > Signed-off-by: zhanghailiang <zhang.zhanghaili...@huawei.com> > Signed-off-by: Li Liu <john.li...@huawei.com> > --- > block/vvfat.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/block/vvfat.c b/block/vvfat.c > index 70176b1..62023e1 100644 > --- a/block/vvfat.c > +++ b/block/vvfat.c > @@ -1084,6 +1084,7 @@ static int vvfat_open(BlockDriverState *bs, QDict > *options, int flags, > > DLOG(if (stderr == NULL) { > stderr = fopen("vvfat.log", "a"); > + assert(stderr); > setbuf(stderr, NULL); > })
An assertion is no better than a segfault. Better I think would be to just remove this whole lump of code entirely. Lots of other files do debug printing to stderr without attempting to open a file if stderr happens to be NULL, why should vvfat.c be special? -- PMM