On Mon, Aug 04, 2014 at 04:25:44PM +0800, zhanghailiang wrote: > The function fstat() may fail, so check its return value. > > Signed-off-by: zhanghailiang <zhang.zhanghaili...@huawei.com> > --- > hw/misc/ivshmem.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c > index 768e528..2667e9f 100644 > --- a/hw/misc/ivshmem.c > +++ b/hw/misc/ivshmem.c > @@ -324,7 +324,10 @@ static int check_shm_size(IVShmemState *s, int fd) { > > struct stat buf; > > - fstat(fd, &buf); > + if (fstat(fd, &buf) < 0) { > + fprintf(stderr, "Cannot stat IVSHMEM: %s\n", strerror(errno)); > + return -1; > + } >
That's a confusing error message: 1. You don't stat ivshmem. You stat a shmem fd. Also best to print fd #. 2. Tell the user what action was taken, e.g. IVSHMEM failed to start. > if (s->ivshmem_size > buf.st_size) { > fprintf(stderr, > -- > 1.7.12.4 >