From: Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com>
To: Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: haicheng.li@intel.com, xen-devel@lists.xensource.com,
Keir Fraser <keir.fraser@eu.citrix.com>
Subject: Re: ioemu: Re-enable guest boot with blktap devices ( Weekly VMX status report. Xen: #18577 & Xen0: #696)
Date: Wed, 15 Oct 2008 08:57:58 +0900 [thread overview]
Message-ID: <48F53206.70207@ab.jp.nec.com> (raw)
In-Reply-To: <18676.31008.919860.890968@mariner.uk.xensource.com>
Ian Jackson wrote:
> Yosuke Iwamatsu writes ("ioemu: Re-enable guest boot with blktap devices ([Xen-devel] Weekly VMX status report. Xen: #18577 & Xen0: #696)"):
>> Bug #1367 looks caused by the xenstore path checking code recently added
>> to ioemu-remote. I saw the same problem and found that the code didn't
>> consider the case blktap devices were attached to the guest. The patch
>> below should avoid the problem.
>
> Thanks for the report. Could you try the attached patch instead and
> let me know whether it fixes the problem ?
It looks fine to me.
-- Yosuke
>
> Keir Fraser writes ("Re: ioemu: Re-enable guest boot with blktap devices ([Xen-devel] Weekly VMX status report. Xen: #18577 & Xen0: #696)"):
>> Alternatively could just check a shorter path prefix (just /local/domain/0/
>> would be sufficient I think). Full path checking is obviously inherently a
>> bit more fragile.
>
> Well, yes, but this is a security check and I think those are really
> supposed to be brittle. So I'd prefer to make us check that the path
> is definitely completely of an expected form.
>
> Ian.
>
> commit 629adb3f5244169731ff18b16ae919641d81ad76
> Author: Ian Jackson <ian.jackson@eu.citrix.com>
> Date: Tue Oct 14 11:46:53 2008 +0100
>
> Fix blktap device backend patch check
>
> Regarding http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1367,
> it appears that the expected backend path check is too strict for'
> blktap devices. Therefore if the devtype is `vbd' we allow the
> backend to be `tap'.
>
> Thanks to report and inspiration from Yosuke Iwamatsu.
>
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
>
> diff --git a/xenstore.c b/xenstore.c
> index f5aa8a7..5cd5063 100644
> --- a/xenstore.c
> +++ b/xenstore.c
> @@ -191,17 +191,36 @@ static void xenstore_get_backend_path(char **backend, const char *devtype,
> backend_dompath = xs_get_domain_path(xsh, domid_backend);
> if (!backend_dompath) goto out;
>
> - if (pasprintf(&expected_backend, "%s/backend/%s/%lu/%s",
> - backend_dompath, devtype, frontend_domid, inst_danger)
> - == -1) goto out;
> + const char *expected_devtypes[3];
> + const char **expected_devtype = expected_devtypes;
> +
> + *expected_devtype++ = devtype;
> + if (!strcmp(devtype, "vbd")) *expected_devtype++ = "tap";
> + *expected_devtype = 0;
> + assert(expected_devtype <
> + expected_devtypes + ARRAY_SIZE(expected_devtypes));
> +
> + for (expected_devtype = expected_devtypes;
> + *expected_devtype;
> + expected_devtype++) {
> +
> + if (pasprintf(&expected_backend, "%s/backend/%s/%lu/%s",
> + backend_dompath, *expected_devtype,
> + frontend_domid, inst_danger)
> + == -1) goto out;
>
> - if (strcmp(bpath, expected_backend)) {
> - fprintf(stderr, "frontend `%s' expected backend `%s' got `%s',"
> - " ignoring\n", frontend_path, expected_backend, bpath);
> - errno = EINVAL;
> - goto out;
> + if (!strcmp(bpath, expected_backend))
> + goto found;
> }
>
> + fprintf(stderr, "frontend `%s' devtype `%s' expected backend `%s'"
> + " got `%s', ignoring\n",
> + frontend_path, devtype, expected_backend, bpath);
> + errno = EINVAL;
> + goto out;
> +
> + found:
> +
> if (pasprintf(&backend_frontend_path, "%s/frontend", bpath)
> == -1) goto out;
>
prev parent reply other threads:[~2008-10-14 23:57 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-11 7:05 Weekly VMX status report. Xen: #18577 & Xen0: #696 Li, Haicheng
2008-10-14 4:04 ` ioemu: Re-enable guest boot with blktap devices (Weekly VMX status report. Xen: #18577 & Xen0: #696) Yosuke Iwamatsu
2008-10-14 7:13 ` ioemu: Re-enable guest boot with blktap devices ( Weekly " Keir Fraser
2008-10-14 10:49 ` Ian Jackson
2008-10-14 23:57 ` Yosuke Iwamatsu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48F53206.70207@ab.jp.nec.com \
--to=y-iwamatsu@ab.jp.nec.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=haicheng.li@intel.com \
--cc=keir.fraser@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.