qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [PATCH 1/8] block/nbd-client: assert qiov len once in n


From: Eric Blake
Subject: Re: [Qemu-block] [PATCH 1/8] block/nbd-client: assert qiov len once in nbd_co_request
Date: Mon, 25 Sep 2017 16:58:21 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

On 09/25/2017 08:57 AM, Vladimir Sementsov-Ogievskiy wrote:
> Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
> ---
>  block/nbd-client.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 

> @@ -233,6 +231,7 @@ static int nbd_co_request(BlockDriverState *bs,
>  
>      assert(!qiov || request->type == NBD_CMD_WRITE ||
>             request->type == NBD_CMD_READ);
> +    assert(!qiov || request->len == iov_size(qiov->iov, qiov->niov));

Asserting !qiov twice in a row feels a bit odd, although I see why you
have to do it to prevent a NULL dereference.  Would this be any easier
to read as a single assertion:

assert(!qiov ||
       ((request->type == NBD_CMD_WRITE ||
         request->type == NBD_CMD_READ) &&
        request->len == iov_size(qiov->iov, qiov->niov)));

Or, as a conditional:

if (qiov) {
    assert(request->type == NBD_CMD_WRITE || request->type == NBD_CMD_READ);
    assert(request->len == iov_size(qiov->iov, qiov->niov));
} else {
    assert(request->type != NBD_CMD_WRITE && request->type != NBD_CMD_READ);
}

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]