18.08.2014 12:06, Peter Maydell wrote: > 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?
Indeed. I've applied a patch which just removes these 6 lines of code (and sent it to the list too, for review). Thanks, /mjt