[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v4 17/21] nbd/client: Add nbd_receive_export_lis
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
Re: [Qemu-block] [PATCH v4 17/21] nbd/client: Add nbd_receive_export_list() |
Date: |
Fri, 18 Jan 2019 12:07:43 +0000 |
17.01.2019 22:36, Eric Blake wrote:
> We want to be able to detect whether a given qemu NBD server is
> exposing the right export(s) and dirty bitmaps, at least for
> regression testing. We could use 'nbd-client -l' from the upstream
> NBD project to list exports, but it's annoying to rely on
> out-of-tree binaries; furthermore, nbd-client doesn't necessarily
> know about all of the qemu NBD extensions. Thus, we plan on adding
> a new mode to qemu-nbd that merely sniffs all possible information
> from the server during handshake phase, then disconnects and dumps
> the information.
>
> This patch adds the low-level client code for grabbing the list
> of exports. It benefits from the recent refactoring patches, in
> order to share as much code as possible when it comes to doing
> validation of server replies. The resulting information is stored
> in an array of NBDExportInfo which has been expanded to any
> description string, along with a convenience function for freeing
> the list.
>
> Note: a malicious server could exhaust memory of a client by feeding
> an unending loop of exports; perhaps we should place a limit on how
> many we are willing to receive. But note that a server could
> reasonably be serving an export for every file in a large directory,
> where an arbitrary limit in the client means we can't list anything
> from such a server; the same happens if we just run until the client
> fails to malloc() and thus dies by an abort(), where the limit is
> no longer arbitrary but determined by available memory. Since the
> client is already planning on being short-lived, it's hard to call
> this a denial of service attack that would starve off other uses,
> so it does not appear to be a security issue.
>
> Signed-off-by: Eric Blake<address@hidden>
> Reviewed-by: Richard W.M. Jones<address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
--
Best regards,
Vladimir
- [Qemu-block] [PATCH v4 11/21] nbd/client: Split out nbd_send_meta_query(), (continued)
- [Qemu-block] [PATCH v4 11/21] nbd/client: Split out nbd_send_meta_query(), Eric Blake, 2019/01/17
- [Qemu-block] [PATCH v4 20/21] nbd/client: Work around 3.0 bug for listing meta contexts, Eric Blake, 2019/01/17
- [Qemu-block] [PATCH v4 10/21] nbd/client: Change signature of nbd_negotiate_simple_meta_context(), Eric Blake, 2019/01/17
- [Qemu-block] [PATCH v4 21/21] iotests: Enhance 223, 233 to cover 'qemu-nbd --list', Eric Blake, 2019/01/17
- [Qemu-block] [PATCH v4 18/21] nbd/client: Add meta contexts to nbd_receive_export_list(), Eric Blake, 2019/01/17
- [Qemu-block] [PATCH v4 16/21] nbd/client: Refactor nbd_opt_go() to support NBD_OPT_INFO, Eric Blake, 2019/01/17
- [Qemu-block] [PATCH v4 12/21] nbd/client: Split out nbd_receive_one_meta_context(), Eric Blake, 2019/01/17
- [Qemu-block] [PATCH v4 17/21] nbd/client: Add nbd_receive_export_list(), Eric Blake, 2019/01/17
- Re: [Qemu-block] [PATCH v4 17/21] nbd/client: Add nbd_receive_export_list(),
Vladimir Sementsov-Ogievskiy <=
- [Qemu-block] [PATCH v4 19/21] qemu-nbd: Add --list option, Eric Blake, 2019/01/17
- [Qemu-block] [PATCH v4 14/21] nbd/client: Split handshake into two functions, Eric Blake, 2019/01/17
- [Qemu-block] [PATCH v4 13/21] nbd/client: Refactor return of nbd_receive_negotiate(), Eric Blake, 2019/01/17
- Re: [Qemu-block] [PATCH v4 00/21] nbd: add qemu-nbd --list, Vladimir Sementsov-Ogievskiy, 2019/01/18