* [Qemu-devel] [PATCH V2 0/2] fix segfault and naming of runtime opts @ 2017-01-31 15:56 Peter Lieven 2017-01-31 15:56 ` [Qemu-devel] [PATCH V2 1/2] block/nfs: fix NULL pointer dereference in URI parsing Peter Lieven 2017-01-31 15:56 ` [Qemu-devel] [PATCH V2 2/2] block/nfs: fix naming of runtime opts Peter Lieven 0 siblings, 2 replies; 6+ messages in thread From: Peter Lieven @ 2017-01-31 15:56 UTC (permalink / raw) To: qemu-devel Cc: qemu-block, kwolf, eblake, ashijeetacharya, jcody, mreitz, armbru, Peter Lieven commit 94d6a7a accidently left the naming of runtime opts and QAPI scheme inconsistent. Furthermore a NULL pointer dereference resulted in a segfault when parsing URI parameters. v1->v2: Patch 1: fixed type in commit msg [Eric] Patch 2: noted backwards incompatiblity with 2.8 [Eric] Peter Lieven (2): block/nfs: fix NULL pointer dereference in URI parsing block/nfs: fix naming of runtime opts block/nfs.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) -- 1.9.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH V2 1/2] block/nfs: fix NULL pointer dereference in URI parsing 2017-01-31 15:56 [Qemu-devel] [PATCH V2 0/2] fix segfault and naming of runtime opts Peter Lieven @ 2017-01-31 15:56 ` Peter Lieven 2017-01-31 15:56 ` [Qemu-devel] [PATCH V2 2/2] block/nfs: fix naming of runtime opts Peter Lieven 1 sibling, 0 replies; 6+ messages in thread From: Peter Lieven @ 2017-01-31 15:56 UTC (permalink / raw) To: qemu-devel Cc: qemu-block, kwolf, eblake, ashijeetacharya, jcody, mreitz, armbru, Peter Lieven, qemu-stable 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 <pl@kamp.de> Reviewed-by: Eric Blake <eblake@redhat.com> --- 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)); for (i = 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; -- 1.9.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH V2 2/2] block/nfs: fix naming of runtime opts 2017-01-31 15:56 [Qemu-devel] [PATCH V2 0/2] fix segfault and naming of runtime opts Peter Lieven 2017-01-31 15:56 ` [Qemu-devel] [PATCH V2 1/2] block/nfs: fix NULL pointer dereference in URI parsing Peter Lieven @ 2017-01-31 15:56 ` Peter Lieven 2017-01-31 16:07 ` Eric Blake 2017-02-01 1:06 ` Max Reitz 1 sibling, 2 replies; 6+ messages in thread From: Peter Lieven @ 2017-01-31 15:56 UTC (permalink / raw) To: qemu-devel Cc: qemu-block, kwolf, eblake, ashijeetacharya, jcody, mreitz, armbru, Peter Lieven, qemu-stable 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 deference during URI parsing. Fixes: 94d6a7a76e9df9919629428f6c598e2b97d9426c Cc: qemu-stable@nongnu.org Signed-off-by: Peter Lieven <pl@kamp.de> Reviewed-by: Eric Blake <eblake@redhat.com> --- block/nfs.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/block/nfs.c b/block/nfs.c index baaecff..464d547 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -359,27 +359,27 @@ static QemuOptsList runtime_opts = { .help = "Path of the image on the host", }, { - .name = "uid", + .name = "user", .type = QEMU_OPT_NUMBER, .help = "UID value to use when talking to the server", }, { - .name = "gid", + .name = "group", .type = QEMU_OPT_NUMBER, .help = "GID value to use when talking to the server", }, { - .name = "tcp-syncnt", + .name = "tcp-syn-count", .type = QEMU_OPT_NUMBER, .help = "Number of SYNs to send during the session establish", }, { - .name = "readahead", + .name = "readahead-size", .type = QEMU_OPT_NUMBER, .help = "Set the readahead size in bytes", }, { - .name = "pagecache", + .name = "page-cache-size", .type = QEMU_OPT_NUMBER, .help = "Set the pagecache size in bytes", }, @@ -508,29 +508,29 @@ static int64_t nfs_client_open(NFSClient *client, QDict *options, goto fail; } - if (qemu_opt_get(opts, "uid")) { - client->uid = qemu_opt_get_number(opts, "uid", 0); + if (qemu_opt_get(opts, "user")) { + client->uid = qemu_opt_get_number(opts, "user", 0); nfs_set_uid(client->context, client->uid); } - if (qemu_opt_get(opts, "gid")) { - client->gid = qemu_opt_get_number(opts, "gid", 0); + if (qemu_opt_get(opts, "group")) { + client->gid = qemu_opt_get_number(opts, "group", 0); nfs_set_gid(client->context, client->gid); } - if (qemu_opt_get(opts, "tcp-syncnt")) { - client->tcp_syncnt = qemu_opt_get_number(opts, "tcp-syncnt", 0); + if (qemu_opt_get(opts, "tcp-syn-count")) { + client->tcp_syncnt = qemu_opt_get_number(opts, "tcp-syn-count", 0); nfs_set_tcp_syncnt(client->context, client->tcp_syncnt); } #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 = on"); goto fail; } - client->readahead = qemu_opt_get_number(opts, "readahead", 0); + client->readahead = 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, QDict *options, #endif #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 = on"); goto fail; } - client->pagecache = qemu_opt_get_number(opts, "pagecache", 0); + client->pagecache = 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); -- 1.9.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH V2 2/2] block/nfs: fix naming of runtime opts 2017-01-31 15:56 ` [Qemu-devel] [PATCH V2 2/2] block/nfs: fix naming of runtime opts Peter Lieven @ 2017-01-31 16:07 ` Eric Blake 2017-02-01 1:06 ` Max Reitz 1 sibling, 0 replies; 6+ messages in thread From: Eric Blake @ 2017-01-31 16:07 UTC (permalink / raw) To: Peter Lieven, qemu-devel Cc: qemu-block, kwolf, ashijeetacharya, jcody, mreitz, armbru, qemu-stable [-- Attachment #1: Type: text/plain, Size: 880 bytes --] On 01/31/2017 09:56 AM, Peter Lieven wrote: > 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 deference during s/deference/dereference/ > URI parsing. > > Fixes: 94d6a7a76e9df9919629428f6c598e2b97d9426c > Cc: qemu-stable@nongnu.org > Signed-off-by: Peter Lieven <pl@kamp.de> > Reviewed-by: Eric Blake <eblake@redhat.com> Maintainer can touch that up, my review stands. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 604 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH V2 2/2] block/nfs: fix naming of runtime opts 2017-01-31 15:56 ` [Qemu-devel] [PATCH V2 2/2] block/nfs: fix naming of runtime opts Peter Lieven 2017-01-31 16:07 ` Eric Blake @ 2017-02-01 1:06 ` Max Reitz 2017-02-01 9:22 ` Peter Lieven 1 sibling, 1 reply; 6+ messages in thread From: Max Reitz @ 2017-02-01 1:06 UTC (permalink / raw) To: Peter Lieven, qemu-devel Cc: qemu-block, kwolf, eblake, ashijeetacharya, jcody, armbru, qemu-stable [-- Attachment #1: Type: text/plain, Size: 1014 bytes --] On 31.01.2017 16:56, Peter Lieven wrote: > 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 deference during > URI parsing. I always love things like this. "This technically breaks X, but obviously nobody used X, because X always crashed." Reminds me of how we success^W accidentally removed qcow2 encryption. Technically however this also changes the runtime parameter names, I think. Giving them probably did work in 2.8, so it is not compatible there. I don't mind very much, though, and you're the maintainer, so it's fine with me. Anyway, I think this patch should also update nfs_refresh_filename(). Max [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 512 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH V2 2/2] block/nfs: fix naming of runtime opts 2017-02-01 1:06 ` Max Reitz @ 2017-02-01 9:22 ` Peter Lieven 0 siblings, 0 replies; 6+ messages in thread From: Peter Lieven @ 2017-02-01 9:22 UTC (permalink / raw) To: Max Reitz, qemu-devel Cc: qemu-block, kwolf, eblake, ashijeetacharya, jcody, armbru, qemu-stable Am 01.02.2017 um 02:06 schrieb Max Reitz: > On 31.01.2017 16:56, Peter Lieven wrote: >> 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 deference during >> URI parsing. > I always love things like this. "This technically breaks X, but > obviously nobody used X, because X always crashed." Reminds me of how we > success^W accidentally removed qcow2 encryption. > > Technically however this also changes the runtime parameter names, I > think. Giving them probably did work in 2.8, so it is not compatible > there. I don't mind very much, though, and you're the maintainer, so > it's fine with me. > > Anyway, I think this patch should also update nfs_refresh_filename(). Thanks, that indeed is missing. Will send a V3. Peter ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-02-01 9:23 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-01-31 15:56 [Qemu-devel] [PATCH V2 0/2] fix segfault and naming of runtime opts Peter Lieven 2017-01-31 15:56 ` [Qemu-devel] [PATCH V2 1/2] block/nfs: fix NULL pointer dereference in URI parsing Peter Lieven 2017-01-31 15:56 ` [Qemu-devel] [PATCH V2 2/2] block/nfs: fix naming of runtime opts Peter Lieven 2017-01-31 16:07 ` Eric Blake 2017-02-01 1:06 ` Max Reitz 2017-02-01 9:22 ` Peter Lieven
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.