From nobody Tue May 7 01:19:14 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1485943057708805.5568335756376; Wed, 1 Feb 2017 01:57:37 -0800 (PST) Received: from localhost ([::1]:43685 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cYrfT-0004OA-J3 for importer@patchew.org; Wed, 01 Feb 2017 04:57:35 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49372) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cYrc3-00012D-GY for qemu-devel@nongnu.org; Wed, 01 Feb 2017 04:54:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cYrc0-0000ch-FK for qemu-devel@nongnu.org; Wed, 01 Feb 2017 04:54:03 -0500 Received: from mx-v6.kamp.de ([2a02:248:0:51::16]:48944 helo=mx01.kamp.de) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cYrc0-0000bC-3E for qemu-devel@nongnu.org; Wed, 01 Feb 2017 04:54:00 -0500 Received: (qmail 7753 invoked by uid 89); 1 Feb 2017 09:53:56 -0000 Received: from [195.62.97.28] by client-16-kamp (envelope-from , uid 89) with qmail-scanner-2010/03/19-MF (clamdscan: 0.99.2/22981. avast: 1.2.2/17010300. spamassassin: 3.4.1. Clear:RC:1(195.62.97.28):. Processed in 0.293078 secs); 01 Feb 2017 09:53:56 -0000 Received: from smtp.kamp.de (HELO submission.kamp.de) ([195.62.97.28]) by mx01.kamp.de with ESMTPS (DHE-RSA-AES256-GCM-SHA384 encrypted); 1 Feb 2017 09:53:53 -0000 Received: (qmail 2291 invoked from network); 1 Feb 2017 09:53:52 -0000 Received: from lieven-pc.kamp-intra.net (HELO lieven-pc) (relay@kamp.de@::ffff:172.21.12.60) by submission.kamp.de with ESMTPS (DHE-RSA-AES256-GCM-SHA384 encrypted) ESMTPA; 1 Feb 2017 09:53:52 -0000 Received: by lieven-pc (Postfix, from userid 1000) id 750CD20358; Wed, 1 Feb 2017 10:53:52 +0100 (CET) X-GL_Whitelist: yes From: Peter Lieven To: qemu-devel@nongnu.org Date: Wed, 1 Feb 2017 10:53:48 +0100 Message-Id: <1485942829-10756-2-git-send-email-pl@kamp.de> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1485942829-10756-1-git-send-email-pl@kamp.de> References: <1485942829-10756-1-git-send-email-pl@kamp.de> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a02:248:0:51::16 Subject: [Qemu-devel] [PATCH V3 1/2] block/nfs: fix NULL pointer dereference in URI parsing X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, qemu-block@nongnu.org, jcody@redhat.com, Peter Lieven , armbru@redhat.com, mreitz@redhat.com, ashijeetacharya@gmail.com, qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" parse_uint_full wants to put the parsed value into the variable passed via its second argument which is NULL. Fixes: 94d6a7a76e9df9919629428f6c598e2b97d9426c Cc: qemu-stable@nongnu.org Signed-off-by: Peter Lieven Reviewed-by: Eric Blake --- block/nfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/block/nfs.c b/block/nfs.c index a564340..baaecff 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -108,12 +108,13 @@ static int nfs_parse_uri(const char *filename, QDict = *options, Error **errp) qdict_put(options, "path", qstring_from_str(uri->path)); =20 for (i =3D 0; i < qp->n; i++) { + unsigned long long val; if (!qp->p[i].value) { error_setg(errp, "Value for NFS parameter expected: %s", qp->p[i].name); goto out; } - if (parse_uint_full(qp->p[i].value, NULL, 0)) { + if (parse_uint_full(qp->p[i].value, &val, 0)) { error_setg(errp, "Illegal value for NFS parameter: %s", qp->p[i].name); goto out; --=20 1.9.1 From nobody Tue May 7 01:19:14 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1485942969522872.2911145548904; Wed, 1 Feb 2017 01:56:09 -0800 (PST) Received: from localhost ([::1]:43675 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cYre1-0002MR-OT for importer@patchew.org; Wed, 01 Feb 2017 04:56:05 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49423) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cYrc5-00013i-5h for qemu-devel@nongnu.org; Wed, 01 Feb 2017 04:54:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cYrc0-0000cW-EW for qemu-devel@nongnu.org; Wed, 01 Feb 2017 04:54:05 -0500 Received: from mx-v6.kamp.de ([2a02:248:0:51::16]:51518 helo=mx01.kamp.de) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cYrc0-0000bS-39 for qemu-devel@nongnu.org; Wed, 01 Feb 2017 04:54:00 -0500 Received: (qmail 7880 invoked by uid 89); 1 Feb 2017 09:53:58 -0000 Received: from [195.62.97.28] by client-16-kamp (envelope-from , uid 89) with qmail-scanner-2010/03/19-MF (clamdscan: 0.99.2/22981. avast: 1.2.2/17010300. spamassassin: 3.4.1. Clear:RC:1(195.62.97.28):. Processed in 0.096482 secs); 01 Feb 2017 09:53:58 -0000 Received: from smtp.kamp.de (HELO submission.kamp.de) ([195.62.97.28]) by mx01.kamp.de with ESMTPS (DHE-RSA-AES256-GCM-SHA384 encrypted); 1 Feb 2017 09:53:57 -0000 Received: (qmail 2301 invoked from network); 1 Feb 2017 09:53:52 -0000 Received: from lieven-pc.kamp-intra.net (HELO lieven-pc) (relay@kamp.de@::ffff:172.21.12.60) by submission.kamp.de with ESMTPS (DHE-RSA-AES256-GCM-SHA384 encrypted) ESMTPA; 1 Feb 2017 09:53:52 -0000 Received: by lieven-pc (Postfix, from userid 1000) id 7910220F0E; Wed, 1 Feb 2017 10:53:52 +0100 (CET) X-GL_Whitelist: yes From: Peter Lieven To: qemu-devel@nongnu.org Date: Wed, 1 Feb 2017 10:53:49 +0100 Message-Id: <1485942829-10756-3-git-send-email-pl@kamp.de> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1485942829-10756-1-git-send-email-pl@kamp.de> References: <1485942829-10756-1-git-send-email-pl@kamp.de> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a02:248:0:51::16 Subject: [Qemu-devel] [PATCH V3 2/2] block/nfs: fix naming of runtime opts X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, qemu-block@nongnu.org, jcody@redhat.com, Peter Lieven , armbru@redhat.com, mreitz@redhat.com, ashijeetacharya@gmail.com, qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" commit 94d6a7a accidently left the naming of runtime opts and QAPI scheme inconsistent. As one consequence passing of parameters in the URI is broken. Sync the naming of the runtime opts to the QAPI scheme. Please note that this is technically backwards incompatible with the 2.8 release, but the 2.8 release is the only version that had the wrong naming. Furthermore release 2.8 suffered from a NULL pointer dereference during URI parsing. Fixes: 94d6a7a76e9df9919629428f6c598e2b97d9426c Cc: qemu-stable@nongnu.org Signed-off-by: Peter Lieven Reviewed-by: Eric Blake --- block/nfs.c | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/block/nfs.c b/block/nfs.c index baaecff..689eaa7 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -359,27 +359,27 @@ static QemuOptsList runtime_opts =3D { .help =3D "Path of the image on the host", }, { - .name =3D "uid", + .name =3D "user", .type =3D QEMU_OPT_NUMBER, .help =3D "UID value to use when talking to the server", }, { - .name =3D "gid", + .name =3D "group", .type =3D QEMU_OPT_NUMBER, .help =3D "GID value to use when talking to the server", }, { - .name =3D "tcp-syncnt", + .name =3D "tcp-syn-count", .type =3D QEMU_OPT_NUMBER, .help =3D "Number of SYNs to send during the session establish= ", }, { - .name =3D "readahead", + .name =3D "readahead-size", .type =3D QEMU_OPT_NUMBER, .help =3D "Set the readahead size in bytes", }, { - .name =3D "pagecache", + .name =3D "page-cache-size", .type =3D QEMU_OPT_NUMBER, .help =3D "Set the pagecache size in bytes", }, @@ -508,29 +508,29 @@ static int64_t nfs_client_open(NFSClient *client, QDi= ct *options, goto fail; } =20 - if (qemu_opt_get(opts, "uid")) { - client->uid =3D qemu_opt_get_number(opts, "uid", 0); + if (qemu_opt_get(opts, "user")) { + client->uid =3D qemu_opt_get_number(opts, "user", 0); nfs_set_uid(client->context, client->uid); } =20 - if (qemu_opt_get(opts, "gid")) { - client->gid =3D qemu_opt_get_number(opts, "gid", 0); + if (qemu_opt_get(opts, "group")) { + client->gid =3D qemu_opt_get_number(opts, "group", 0); nfs_set_gid(client->context, client->gid); } =20 - if (qemu_opt_get(opts, "tcp-syncnt")) { - client->tcp_syncnt =3D qemu_opt_get_number(opts, "tcp-syncnt", 0); + if (qemu_opt_get(opts, "tcp-syn-count")) { + client->tcp_syncnt =3D qemu_opt_get_number(opts, "tcp-syn-count", = 0); nfs_set_tcp_syncnt(client->context, client->tcp_syncnt); } =20 #ifdef LIBNFS_FEATURE_READAHEAD - if (qemu_opt_get(opts, "readahead")) { + if (qemu_opt_get(opts, "readahead-size")) { if (open_flags & BDRV_O_NOCACHE) { error_setg(errp, "Cannot enable NFS readahead " "if cache.direct =3D on"); goto fail; } - client->readahead =3D qemu_opt_get_number(opts, "readahead", 0); + client->readahead =3D qemu_opt_get_number(opts, "readahead-size", = 0); if (client->readahead > QEMU_NFS_MAX_READAHEAD_SIZE) { error_report("NFS Warning: Truncating NFS readahead " "size to %d", QEMU_NFS_MAX_READAHEAD_SIZE); @@ -545,13 +545,13 @@ static int64_t nfs_client_open(NFSClient *client, QDi= ct *options, #endif =20 #ifdef LIBNFS_FEATURE_PAGECACHE - if (qemu_opt_get(opts, "pagecache")) { + if (qemu_opt_get(opts, "page-cache-size")) { if (open_flags & BDRV_O_NOCACHE) { error_setg(errp, "Cannot enable NFS pagecache " "if cache.direct =3D on"); goto fail; } - client->pagecache =3D qemu_opt_get_number(opts, "pagecache", 0); + client->pagecache =3D qemu_opt_get_number(opts, "page-cache-size",= 0); if (client->pagecache > QEMU_NFS_MAX_PAGECACHE_SIZE) { error_report("NFS Warning: Truncating NFS pagecache " "size to %d pages", QEMU_NFS_MAX_PAGECACHE_SIZE); @@ -804,22 +804,22 @@ static void nfs_refresh_filename(BlockDriverState *bs= , QDict *options) qdict_put(opts, "path", qstring_from_str(client->path)); =20 if (client->uid) { - qdict_put(opts, "uid", qint_from_int(client->uid)); + qdict_put(opts, "user", qint_from_int(client->uid)); } if (client->gid) { - qdict_put(opts, "gid", qint_from_int(client->gid)); + qdict_put(opts, "group", qint_from_int(client->gid)); } if (client->tcp_syncnt) { - qdict_put(opts, "tcp-syncnt", - qint_from_int(client->tcp_syncnt)); + qdict_put(opts, "tcp-syn-cnt", + qint_from_int(client->tcp_syncnt)); } if (client->readahead) { - qdict_put(opts, "readahead", - qint_from_int(client->readahead)); + qdict_put(opts, "readahead-size", + qint_from_int(client->readahead)); } if (client->pagecache) { - qdict_put(opts, "pagecache", - qint_from_int(client->pagecache)); + qdict_put(opts, "page-cache-size", + qint_from_int(client->pagecache)); } if (client->debug) { qdict_put(opts, "debug", qint_from_int(client->debug)); --=20 1.9.1