From nobody Thu May 2 06:43:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1521203129521484.494189473736; Fri, 16 Mar 2018 05:25:29 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id AB61F3ADAB; Fri, 16 Mar 2018 12:25:27 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BB74017168; Fri, 16 Mar 2018 12:25:26 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id A3556181B9FD; Fri, 16 Mar 2018 12:25:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w2GCNFvQ023895 for ; Fri, 16 Mar 2018 08:23:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id 94A3360F90; Fri, 16 Mar 2018 12:23:15 +0000 (UTC) Received: from mx1.redhat.com (ext-mx02.extmail.prod.ext.phx2.redhat.com [10.5.110.26]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8F0FC60BEB for ; Fri, 16 Mar 2018 12:23:12 +0000 (UTC) Received: from mail-pg0-f54.google.com (mail-pg0-f54.google.com [74.125.83.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6F8637E9D9 for ; Fri, 16 Mar 2018 12:23:11 +0000 (UTC) Received: by mail-pg0-f54.google.com with SMTP id g8so4004182pgv.7 for ; Fri, 16 Mar 2018 05:23:11 -0700 (PDT) Received: from localhost.localdomain ([2405:204:a8:8a16:a00:27ff:fe0c:67b9]) by smtp.gmail.com with ESMTPSA id 12sm16629302pfr.108.2018.03.16.05.23.08 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 16 Mar 2018 05:23:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=CqFAH12/KEpWQWzNd3cW+YC9vFayE9zYUCPjNFLOroU=; b=bu0DHCSdDhKyl+0RlHghHxadWBItbUGFvXhAsHHl1Pc7cO6jxjd/nJ2hGwvx5bTv2o kTEpVKbg42+grfQziTxCCUeY3tkBt13spEACAGaq07bcH8WFxaNmVMbaZD7N/3GhVc1/ qQym5WNGj5gjWyU+yv0FEx6jj4H+c9jlTEbL7h3zwhbDZnPIlmm4w9z/EsbyAF2u4hBL s0kDS9ABF94zGEC5eJqMNPdt9h0DoLvU7LGPsiJGEmzz+DLFzbqJ6YwU0M2DBi99oW4l PMqL1uOditkHBCZcVUwtRUzUCrK518/TBzBiSxKMbF4jN3us7IT0IuDYZOsZC7DOsUDn 0jRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=CqFAH12/KEpWQWzNd3cW+YC9vFayE9zYUCPjNFLOroU=; b=T3G7LQLT+iHIFHmUFbB0R5DR3R7UTHieWmA0xT0819Ebn83HDTr0eu1924AETXKD8f JnAJCev7d9HG1jNMYgYFt8VKVvCD4uCq0W0wmbLA37nUY4bL7+OurmG7x9epfGHx4ng3 o/a+lMUyMnovEgdBgk0quWHVWMKAy1knT0SLlKs2/jyKmrq3UiApgxXyx7q+fC2sNX3I +v3O4NcXzVNioiDVL66wwjuRGxlWZuqW5fjBhbgffPfpIjFSzkZjNa7HN1ZAh60Pkt2+ wj3thnzSp7ARYw6bNVHpi/oLsBSJE1vHiD9RzS2gQAxr1FCms879z7PrGVUddK2EMD1c 9NjA== X-Gm-Message-State: AElRT7FPGbLn6BjEp1sr95jTq+1JE+Q75Is6hjurYBsM3J8aS7LC7Z06 ZGsnUV2Yd9wj2YJutV/6Cq8TUhp+ X-Google-Smtp-Source: AG47ELvhAOrOxvd3oMukk8q5Od5QPu1T22G32OHWKVseBfTs/97SupXgQrWvAZyabdei4hcYvcblPA== X-Received: by 10.101.75.140 with SMTP id t12mr1351669pgq.442.1521202990368; Fri, 16 Mar 2018 05:23:10 -0700 (PDT) From: Sukrit Bhatnagar To: libvir-list@redhat.com Date: Fri, 16 Mar 2018 17:53:01 +0530 Message-Id: <20180316122301.20592-1-skrtbhtngr@gmail.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 16 Mar 2018 12:23:11 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 16 Mar 2018 12:23:11 +0000 (UTC) for IP:'74.125.83.54' DOMAIN:'mail-pg0-f54.google.com' HELO:'mail-pg0-f54.google.com' FROM:'skrtbhtngr@gmail.com' RCPT:'' X-RedHat-Spam-Score: -0.13 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_PASS) 74.125.83.54 mail-pg0-f54.google.com 74.125.83.54 mail-pg0-f54.google.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.26 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Subject: [libvirt] [GSoC] Contribution towards GSoC'18 [BiteSizedTasks]. X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Fri, 16 Mar 2018 12:25:28 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Task: Use comma escaping for more command line values in qemu Added virQEMUBuildBufferEscapeComma wherever applicable in src/qemu/qemu_co= mmand.c as specified in the Task page. Places where no changes were made: - src->hosts->socket in qemuBuildNetworkDriveURI uses virAsprintf not virBu= fferAsprintf - TYPE_DEV, TYPE_FILE, TYPE_PIPE, TYPE_UNIX not found in qemuBuildChrArgStr - not applicable on data.nix.path in qemuBuildVhostuserCommandLine - UNCLEAR: places that use strchr in qemuBuildSmartcardCommandLine, can be = converted to use virBufferEscape All tests which were passed by an unmodified clone were passed after I made= these changes. Once `make syntax-check` gave a false error related to matching of braces i= n if-else. Your feedback is welcome :) Signed-off-by: Sukrit Bhatnagar --- src/qemu/qemu_command.c | 74 ++++++++++++++++++++++++++++++---------------= ---- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index fa0aa5d5c..beabf8837 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -474,8 +474,10 @@ qemuBuildRomStr(virBufferPtr buf, default: break; } - if (info->romfile) - virBufferAsprintf(buf, ",romfile=3D%s", info->romfile); + if (info->romfile) { + virBufferAddLit(buf, ",romfile=3D"); + virQEMUBuildBufferEscapeComma(buf, info->romfile); + } } return 0; } @@ -2177,11 +2179,15 @@ qemuBuildDriveDevStr(const virDomainDef *def, virBufferAsprintf(&opt, ",wwn=3D0x%s", disk->wwn); } =20 - if (disk->vendor) - virBufferAsprintf(&opt, ",vendor=3D%s", disk->vendor); + if (disk->vendor) { + virBufferAddLit(&opt, ",vendor=3D"); + virQEMUBuildBufferEscapeComma(&opt, disk->vendor); + } =20 - if (disk->product) - virBufferAsprintf(&opt, ",product=3D%s", disk->product); + if (disk->product) { + virBufferAddLit(&opt, ",product=3D"); + virQEMUBuildBufferEscapeComma(&opt, disk->product); + } =20 if (disk->bus =3D=3D VIR_DOMAIN_DISK_BUS_USB) { if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_STORAGE_REMOVABLE)) { @@ -2418,7 +2424,8 @@ qemuBuildFSStr(virDomainFSDefPtr fs, } =20 virBufferAsprintf(&opt, ",id=3D%s%s", QEMU_FSDEV_HOST_PREFIX, fs->info= .alias); - virBufferAsprintf(&opt, ",path=3D%s", fs->src->path); + virBufferAddLit(&opt, ",path=3D"); + virQEMUBuildBufferEscapeComma(&opt, fs->src->path); =20 if (fs->readonly) { if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_FSDEV_READONLY)) { @@ -2463,7 +2470,8 @@ qemuBuildFSDevStr(const virDomainDef *def, virBufferAsprintf(&opt, ",id=3D%s", fs->info.alias); virBufferAsprintf(&opt, ",fsdev=3D%s%s", QEMU_FSDEV_HOST_PREFIX, fs->info.alias); - virBufferAsprintf(&opt, ",mount_tag=3D%s", fs->dst); + virBufferAddLit(&opt, ",mount_tag=3D"); + virQEMUBuildBufferEscapeComma(&opt, fs->dst); =20 if (qemuBuildVirtioOptionsStr(&opt, fs->virtio, qemuCaps) < 0) goto error; @@ -3603,10 +3611,9 @@ qemuBuildHostNetStr(virDomainNetDefPtr net, break; =20 case VIR_DOMAIN_NET_TYPE_CLIENT: - virBufferAsprintf(&buf, "socket%cconnect=3D%s:%d,", - type_sep, - net->data.socket.address, - net->data.socket.port); + virBufferAsprintf(&buf, "socket%cconnect=3D", type_sep); + virQEMUBuildBufferEscapeComma(&buf, net->data.socket.address); + virBufferAsprintf(&buf, ":%d,", net->data.socket.port); break; =20 case VIR_DOMAIN_NET_TYPE_SERVER: @@ -4858,7 +4865,8 @@ qemuBuildChrChardevFileStr(virLogManagerPtr logManage= r, virBufferAsprintf(buf, ",%s=3D%s,%s=3Don", filearg, fdpath, append= arg); VIR_FREE(fdpath); } else { - virBufferAsprintf(buf, ",%s=3D%s", filearg, fileval); + virBufferAsprintf(buf, ",%s=3D", filearg); + virQEMUBuildBufferEscapeComma(buf, fileval); if (appendval !=3D VIR_TRISTATE_SWITCH_ABSENT) { virBufferAsprintf(buf, ",%s=3D%s", appendarg, virTristateSwitchTypeToString(appendval)); @@ -4916,9 +4924,10 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, break; =20 case VIR_DOMAIN_CHR_TYPE_DEV: - virBufferAsprintf(&buf, "%s,id=3D%s,path=3D%s", + virBufferAsprintf(&buf, "%s,id=3D%s,path=3D", STRPREFIX(alias, "parallel") ? "parport" : "tty", - charAlias, dev->data.file.path); + charAlias); + virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path); break; =20 case VIR_DOMAIN_CHR_TYPE_FILE: @@ -4938,8 +4947,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, break; =20 case VIR_DOMAIN_CHR_TYPE_PIPE: - virBufferAsprintf(&buf, "pipe,id=3D%s,path=3D%s", charAlias, - dev->data.file.path); + virBufferAsprintf(&buf, "pipe,id=3D%s,path=3D", charAlias); + virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path); break; =20 case VIR_DOMAIN_CHR_TYPE_STDIO: @@ -7829,10 +7838,14 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfig= Ptr cfg, =20 if (cfg->vncTLS) { virBufferAddLit(&opt, ",tls"); - if (cfg->vncTLSx509verify) - virBufferAsprintf(&opt, ",x509verify=3D%s", cfg->vncTLSx509cer= tdir); - else - virBufferAsprintf(&opt, ",x509=3D%s", cfg->vncTLSx509certdir); + if (cfg->vncTLSx509verify) { + virBufferAddLit(&opt, ",x509verify=3D"); + virQEMUBuildBufferEscapeComma(&opt, cfg->vncTLSx509certdir); + } + else { + virBufferAddLit(&opt, ",x509=3D"); + virQEMUBuildBufferEscapeComma(&opt, cfg->vncTLSx509certdir); + } } =20 if (cfg->vncSASL) { @@ -7977,8 +7990,11 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfi= gPtr cfg, !cfg->spicePassword) virBufferAddLit(&opt, "disable-ticketing,"); =20 - if (hasSecure) - virBufferAsprintf(&opt, "x509-dir=3D%s,", cfg->spiceTLSx509certdir= ); + if (hasSecure) { + virBufferAddLit(&opt, "x509-dir=3D"); + virQEMUBuildBufferEscapeComma(&opt, cfg->spiceTLSx509certdir); + virBufferAddLit(&opt, ","); + } =20 switch (graphics->data.spice.defaultMode) { case VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_MODE_SECURE: @@ -9463,9 +9479,9 @@ qemuBuildDomainLoaderCommandLine(virCommandPtr cmd, NULL); } =20 - virBufferAsprintf(&buf, - "file=3D%s,if=3Dpflash,format=3Draw,unit=3D%d", - loader->path, unit); + virBufferAddLit(&buf, "file=3D"); + virQEMUBuildBufferEscapeComma(&buf, loader->path); + virBufferAsprintf(&buf, ",if=3Dpflash,format=3Draw,unit=3D%d", uni= t); unit++; =20 if (loader->readonly) { @@ -9478,9 +9494,9 @@ qemuBuildDomainLoaderCommandLine(virCommandPtr cmd, =20 if (loader->nvram) { virBufferFreeAndReset(&buf); - virBufferAsprintf(&buf, - "file=3D%s,if=3Dpflash,format=3Draw,unit=3D%= d", - loader->nvram, unit); + virBufferAddLit(&buf, "file=3D"); + virQEMUBuildBufferEscapeComma(&buf, loader->nvram); + virBufferAsprintf(&buf, ",if=3Dpflash,format=3Draw,unit=3D%d",= unit); =20 virCommandAddArg(cmd, "-drive"); virCommandAddArgBuffer(cmd, &buf); --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list