{"id":810211,"url":"http://patchwork.ozlabs.org/api/1.2/patches/810211/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170905160027.15081-5-groug@kaod.org/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.2/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170905160027.15081-5-groug@kaod.org>","list_archive_url":null,"date":"2017-09-05T16:00:27","name":"[PULL,v2,4/4] virtfs: error out gracefully when mandatory suboptions are missing","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"2800c1e4500d744bde3564813498a1896350b55c","submitter":{"id":69178,"url":"http://patchwork.ozlabs.org/api/1.2/people/69178/?format=json","name":"Greg Kurz","email":"groug@kaod.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170905160027.15081-5-groug@kaod.org/mbox/","series":[{"id":1604,"url":"http://patchwork.ozlabs.org/api/1.2/series/1604/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=1604","date":"2017-09-05T16:00:25","name":"[PULL,v2,1/4] 9pfs: avoid sign conversion error simplifying the code","version":2,"mbox":"http://patchwork.ozlabs.org/series/1604/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/810211/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/810211/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xms4N1hLpz9t16\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed,  6 Sep 2017 02:05:08 +1000 (AEST)","from localhost ([::1]:59952 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dpGLa-0000gA-BJ\n\tfor incoming@patchwork.ozlabs.org; Tue, 05 Sep 2017 12:05:06 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:34541)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <groug@kaod.org>) id 1dpGHJ-0006Jh-Qg\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 12:00:46 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <groug@kaod.org>) id 1dpGHF-0000MQ-2c\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 12:00:41 -0400","from mx0b-001b2d01.pphosted.com ([148.163.158.5]:42634\n\thelo=mx0a-001b2d01.pphosted.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <groug@kaod.org>) id 1dpGHE-0000LZ-OE\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 12:00:36 -0400","from pps.filterd (m0098419.ppops.net [127.0.0.1])\n\tby mx0b-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv85Fwa2i118574\n\tfor <qemu-devel@nongnu.org>; Tue, 5 Sep 2017 12:00:36 -0400","from e06smtp10.uk.ibm.com (e06smtp10.uk.ibm.com [195.75.94.106])\n\tby mx0b-001b2d01.pphosted.com with ESMTP id 2csv20j01p-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <qemu-devel@nongnu.org>; Tue, 05 Sep 2017 12:00:35 -0400","from localhost\n\tby e06smtp10.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <qemu-devel@nongnu.org> from <groug@kaod.org>;\n\tTue, 5 Sep 2017 17:00:33 +0100","from b06cxnps4076.portsmouth.uk.ibm.com (9.149.109.198)\n\tby e06smtp10.uk.ibm.com (192.168.101.140) with IBM ESMTP SMTP\n\tGateway: Authorized Use Only! Violators will be prosecuted; \n\tTue, 5 Sep 2017 17:00:30 +0100","from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com\n\t[9.149.105.61])\n\tby b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v85G0UiC12124246; Tue, 5 Sep 2017 16:00:30 GMT","from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id B8C3811C04A;\n\tTue,  5 Sep 2017 16:56:52 +0100 (BST)","from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id A65F311C054;\n\tTue,  5 Sep 2017 16:56:52 +0100 (BST)","from smtp.lab.toulouse-stg.fr.ibm.com (unknown [9.101.4.1])\n\tby d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP;\n\tTue,  5 Sep 2017 16:56:52 +0100 (BST)","from bahia.lab.toulouse-stg.fr.ibm.com\n\t(bahia.lab.toulouse-stg.fr.ibm.com [9.101.4.41])\n\tby smtp.lab.toulouse-stg.fr.ibm.com (Postfix) with ESMTP id\n\tDB1AD220463; Tue,  5 Sep 2017 18:00:29 +0200 (CEST)"],"From":"Greg Kurz <groug@kaod.org>","To":"qemu-devel@nongnu.org","Date":"Tue,  5 Sep 2017 18:00:27 +0200","X-Mailer":"git-send-email 2.13.5","In-Reply-To":"<20170905160027.15081-1-groug@kaod.org>","References":"<20170905160027.15081-1-groug@kaod.org>","X-TM-AS-GCONF":"00","x-cbid":"17090516-0040-0000-0000-000003D5C5F3","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17090516-0041-0000-0000-000025D64AD2","Message-Id":"<20170905160027.15081-5-groug@kaod.org>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-05_07:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=1\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1709050229","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy]","X-Received-From":"148.163.158.5","Subject":"[Qemu-devel] [PULL v2 4/4] virtfs: error out gracefully when\n\tmandatory suboptions are missing","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Peter Maydell <peter.maydell@linaro.org>, Greg Kurz <groug@kaod.org>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"We internally convert -virtfs to -fsdev/-device. If the user doesn't\nprovide the path or security_model suboptions, and the fsdev backend\nrequires them, we hit an assertion when populating the internal -fsdev\noption:\n\nutil/qemu-option.c:547: opt_set: Assertion `opt->str' failed.\nAborted (core dumped)\n\nLet's test the suboption presence on the command line before trying\nto set it in the internal -fsdev option, and let the backend code\nerror out gracefully (ie, like it already does when the user passes\n-fsdev on the command line).\n\nReported-by: Thomas Huth <thuth@redhat.com>\nSigned-off-by: Greg Kurz <groug@kaod.org>\nReviewed-by: Thomas Huth <thuth@redhat.com>\n---\n vl.c | 16 ++++++++++------\n 1 file changed, 10 insertions(+), 6 deletions(-)","diff":"diff --git a/vl.c b/vl.c\nindex 0b45e1b6fa31..e75757f9772e 100644\n--- a/vl.c\n+++ b/vl.c\n@@ -3557,7 +3557,7 @@ int main(int argc, char **argv, char **envp)\n             case QEMU_OPTION_virtfs: {\n                 QemuOpts *fsdev;\n                 QemuOpts *device;\n-                const char *writeout, *sock_fd, *socket;\n+                const char *writeout, *sock_fd, *socket, *path, *security_model;\n \n                 olist = qemu_find_opts(\"virtfs\");\n                 if (!olist) {\n@@ -3596,11 +3596,15 @@ int main(int argc, char **argv, char **envp)\n                 }\n                 qemu_opt_set(fsdev, \"fsdriver\",\n                              qemu_opt_get(opts, \"fsdriver\"), &error_abort);\n-                qemu_opt_set(fsdev, \"path\", qemu_opt_get(opts, \"path\"),\n-                             &error_abort);\n-                qemu_opt_set(fsdev, \"security_model\",\n-                             qemu_opt_get(opts, \"security_model\"),\n-                             &error_abort);\n+                path = qemu_opt_get(opts, \"path\");\n+                if (path) {\n+                    qemu_opt_set(fsdev, \"path\", path, &error_abort);\n+                }\n+                security_model = qemu_opt_get(opts, \"security_model\");\n+                if (security_model) {\n+                    qemu_opt_set(fsdev, \"security_model\", security_model,\n+                                 &error_abort);\n+                }\n                 socket = qemu_opt_get(opts, \"socket\");\n                 if (socket) {\n                     qemu_opt_set(fsdev, \"socket\", socket, &error_abort);\n","prefixes":["PULL","v2","4/4"]}