On Fri, Jun 06, 2014 at 09:53:30AM +0800, Fam Zheng wrote: > @@ -353,19 +355,18 @@ static void virtio_blk_handle_request(VirtIOBlockReq > *req, > exit(1); > } > > - if (req->elem->out_sg[0].iov_len < sizeof(req->out) || > - req->elem->in_sg[req->elem->in_num - 1].iov_len < sizeof(*req->in)) { > - error_report("virtio-blk header not in correct element"); > - exit(1); > - } > - > if (unlikely(iov_to_buf(iov, out_num, 0, &req->out, > sizeof(req->out)) != sizeof(req->out))) { > error_report("virtio-blk request outhdr too short"); > exit(1); > } > iov_discard_front(&iov, &out_num, sizeof(req->out)); > - req->in = (void *)req->elem->in_sg[req->elem->in_num - 1].iov_base; > + assert(in_iov[in_num - 1].iov_len >= > + sizeof(struct virtio_blk_inhdr));
Why use assert() when the rest of the function uses error_report() + exit(1)? Please keep the code consistent.