John Ferlan wrote: > On 02/07/2013 08:27 AM, Christophe Fergeau wrote: > >> Similarly to 790f912b4 which rejects snapshots names containing, >> this commit changes virDomainSaveXML to reject domains with a '/' >> in their name. The domain name is used as a filename, so this >> leads to unexpected results when used in combination with '..' >> --- >> src/conf/domain_conf.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c >> index 85a798d..13f4bc0 100644 >> --- a/src/conf/domain_conf.c >> +++ b/src/conf/domain_conf.c >> @@ -14728,6 +14728,13 @@ int virDomainSaveXML(const char *configDir, >> char *configFile = NULL; >> int ret = -1; >> >> + if (strchr(def->name, '/')) { >> + virReportError(VIR_ERR_XML_DETAIL, >> + _("invalid domain name '%s': name can't contain '/'"), >> + def->name); >> + goto cleanup; >> + } >> + >> if ((configFile = virDomainConfigFile(configDir, def->name)) == NULL) >> goto cleanup; >> >> >> > Seems this should be in a more "general" location. Would the same rules apply to > other objects (networks, storage, etc.)? What other characters should be avoided? > Having a comma, semi-colon, colon, etc. could have interesting results. Yeah, comma is an interesting one for qemu since that delimits option subarguments. E.g. trying to start a qemu instance with name 'foo,bar' results in $ virsh start "foo,bar" error: Failed to start domain foo,bar error: internal error process exited while connecting to monitor: Unknown subargument bar to -name Regards, Jim -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list