[Libguestfs] [libnbd PATCH 5/7] states: Factor out NBD_REP payload prep
Eric Blake
eblake at redhat.com
Fri Jun 14 22:31:42 UTC 2019
On 6/14/19 4:54 PM, Eric Blake wrote:
> Instead of repeating a check for valid reply headers in each sub-state
> machine, let's have a common helper function do all the
> work. Additionally, a central location will make it easier to
> uniformly capture any NBD_REP_ERR message payloads.
> ---
> generator/generator | 8 +--
> generator/states-newstyle-opt-go.c | 40 +++----------
> .../states-newstyle-opt-set-meta-context.c | 39 ++-----------
> generator/states-newstyle-opt-starttls.c | 31 ++--------
> .../states-newstyle-opt-structured-reply.c | 28 ++-------
> generator/states-newstyle.c | 58 +++++++++++++++++++
> 6 files changed, 86 insertions(+), 118 deletions(-)
Aargh - I need to finish running 'make check' before posting. This one
breaks tests/meta-base-allocation unless:
> +++ b/generator/states-newstyle-opt-set-meta-context.c
> @@ -139,21 +139,13 @@
> return 0;
>
> NEWSTYLE.OPT_SET_META_CONTEXT.RECV_REPLY:
> - uint32_t len;
> - const uint32_t maxpayload = sizeof h->sbuf.or.payload.context;
> -
> switch (recv_into_rbuf (h)) {
> +++ b/generator/states-newstyle.c
> @@ -16,6 +16,64 @@
> + case NBD_REP_META_CONTEXT:
> + if (len <= sizeof h->sbuf.or.payload.context.context.context_id ||
> + len > sizeof h->sbuf.or.payload.context.context) {
I fix this to be:
if (len <= sizeof h->sbuf.or.payload.context.context ||
len > sizeof h->sbuf.or.payload.context) {
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20190614/7b29688a/attachment.sig>
More information about the Libguestfs
mailing list