All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Lieven <lieven-lists@dlhnet.de>
To: Chunyan Liu <cyliu@suse.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH v28 00/33] replace QEMUOptionParameter with QemuOpts
Date: Mon, 23 Jun 2014 16:06:52 +0200	[thread overview]
Message-ID: <53A8347C.6010709@dlhnet.de> (raw)
In-Reply-To: <1401960072-2363-1-git-send-email-cyliu@suse.com>

On 05.06.2014 11:20, Chunyan Liu wrote:
> This patch series is to replace QEMUOptionParameter with QemuOpts, so that only
> one Qemu Option structure is kept in QEMU code.
>
> ---
> Changes to v27:
>    * rebase to git master (code has been updated in this part since v27 sent
>      so rebase to make the patch series work.)
>
> All patches are also available from:
> https://github.com/chunyanliu/qemu/commits/QemuOpts
>
>
> Chunyan Liu (33):
>    QemuOpts: move find_desc_by_name ahead for later calling
>    QemuOpts: repurpose qemu_opts_print to replace
>      print_option_parameters
>    QemuOpts: add def_value_str to QemuOptDesc
>    qapi: output def_value_str when query command line options
>    QemuOpts: change opt->name|str from (const char *) to (char *)
>    QemuOpts: move qemu_opt_del ahead for later calling
>    QemuOpts: add qemu_opt_get_*_del functions for replace work
>    QemuOpts: add qemu_opts_print_help to replace print_option_help
>    QemuOpts: add conversion between QEMUOptionParameter to QemuOpts
>    QemuOpts: add qemu_opts_append to replace append_option_parameters
>    QemuOpts: check NULL input for qemu_opts_del
>    change block layer to support both QemuOpts and QEMUOptionParamter
>    vvfat.c: handle cross_driver's create_options and create_opts
>    cow.c: replace QEMUOptionParameter with QemuOpts
>    gluster.c: replace QEMUOptionParameter with QemuOpts
>    iscsi.c: replace QEMUOptionParameter with QemuOpts
>    nfs.c: replace QEMUOptionParameter with QemuOpts
>    qcow.c: replace QEMUOptionParameter with QemuOpts
>    QemuOpts: export qemu_opt_find
>    qcow2.c: replace QEMUOptionParameter with QemuOpts
>    qed.c: replace QEMUOptionParameter with QemuOpts
>    raw-posix.c: replace QEMUOptionParameter with QemuOpts
>    raw-win32.c: replace QEMUOptionParameter with QemuOpts
>    raw_bsd.c: replace QEMUOptionParameter with QemuOpts
>    rbd.c: replace QEMUOptionParameter with QemuOpts
>    sheepdog.c: replace QEMUOptionParameter with QemuOpts
>    ssh.c: replace QEMUOptionParameter with QemuOpts
>    vdi.c: replace QEMUOptionParameter with QemuOpts
>    vhdx.c: replace QEMUOptionParameter with QemuOpts
>    vmdk.c: replace QEMUOptionParameter with QemuOpts
>    vpc.c: replace QEMUOptionParameter with QemuOpts
>    cleanup QEMUOptionParameter
>    QemuOpts: cleanup tmp 'allocated' member from QemuOptsList
>
>   block.c                    |  99 ++++----
>   block/cow.c                |  52 ++--
>   block/gluster.c            |  73 +++---
>   block/iscsi.c              |  32 ++-
>   block/nfs.c                |  10 +-
>   block/qcow.c               |  72 +++---
>   block/qcow2.c              | 259 ++++++++++----------
>   block/qed.c                | 112 +++++----
>   block/qed.h                |   3 +-
>   block/raw-posix.c          |  55 ++---
>   block/raw-win32.c          |  38 +--
>   block/raw_bsd.c            |  25 +-
>   block/rbd.c                |  61 +++--
>   block/sheepdog.c           | 105 ++++----
>   block/ssh.c                |  30 ++-
>   block/vdi.c                |  71 +++---
>   block/vhdx.c               |  97 ++++----
>   block/vhdx.h               |   1 +
>   block/vmdk.c               | 121 +++++-----
>   block/vpc.c                |  60 ++---
>   block/vvfat.c              |  14 +-
>   include/block/block.h      |   7 +-
>   include/block/block_int.h  |   9 +-
>   include/qemu/option.h      |  53 +---
>   include/qemu/option_int.h  |   4 +-
>   qapi-schema.json           |   5 +-
>   qapi/opts-visitor.c        |  10 +-
>   qemu-img.c                 |  91 ++++---
>   qmp-commands.hx            |   2 +
>   tests/qemu-iotests/049.out |   2 +-
>   tests/qemu-iotests/061.out |   2 +-
>   util/qemu-config.c         |   4 +
>   util/qemu-option.c         | 590 ++++++++++++++++++++-------------------------
>   33 files changed, 1037 insertions(+), 1132 deletions(-)
>

It seems that for qemu-img this series introduces stack corruption. Any ideas?

lieven@lieven-pc:~/git/qemu$ valgrind --leak-check=full ./qemu-img convert -p nfs://172.21.200.61/vcore-dev-cdrom/pool3/VC_Ubuntu_LTS_12.04.2_64bit.qcow2 /tmp/x.raw
==23086== Memcheck, a memory error detector
==23086== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==23086== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==23086== Command: ./qemu-img convert -p nfs://172.21.200.61/vcore-dev-cdrom/pool3/VC_Ubuntu_LTS_12.04.2_64bit.qcow2 /tmp/x.raw
==23086==
==23086== Warning: client switching stacks?  SP change: 0x7650f08 --> 0x7feffe9f0
==23086==          to suppress, use: --max-stackframe=34218892008 or greater
==23086== Invalid write of size 8
==23086==    at 0x1C4980: qemu_opts_create (qemu-option.c:692)
==23086==    by 0x119918: img_convert (qemu-img.c:1385)
==23086==    by 0x11CEEC: main (qemu-img.c:2830)
==23086==  Address 0x7c65fe8 is 24 bytes inside a block of size 104 free'd
==23086==    at 0x4C2B7B2: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==23086==    by 0x54C1AF6: g_realloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3200.4)
==23086==    by 0x1C5C52: qemu_opts_append (qemu-option.c:1129)
==23086==    by 0x1198EE: img_convert (qemu-img.c:1383)
==23086==    by 0x11CEEC: main (qemu-img.c:2830)
==23086==


Peter

  parent reply	other threads:[~2014-06-23 14:07 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-05  9:20 [Qemu-devel] [PATCH v28 00/33] replace QEMUOptionParameter with QemuOpts Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 01/33] QemuOpts: move find_desc_by_name ahead for later calling Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 02/33] QemuOpts: repurpose qemu_opts_print to replace print_option_parameters Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 03/33] QemuOpts: add def_value_str to QemuOptDesc Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 04/33] qapi: output def_value_str when query command line options Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 05/33] QemuOpts: change opt->name|str from (const char *) to (char *) Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 06/33] QemuOpts: move qemu_opt_del ahead for later calling Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 07/33] QemuOpts: add qemu_opt_get_*_del functions for replace work Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 08/33] QemuOpts: add qemu_opts_print_help to replace print_option_help Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 09/33] QemuOpts: add conversion between QEMUOptionParameter to QemuOpts Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 10/33] QemuOpts: add qemu_opts_append to replace append_option_parameters Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 11/33] QemuOpts: check NULL input for qemu_opts_del Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 12/33] change block layer to support both QemuOpts and QEMUOptionParamter Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 13/33] vvfat.c: handle cross_driver's create_options and create_opts Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 14/33] cow.c: replace QEMUOptionParameter with QemuOpts Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 15/33] gluster.c: " Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 16/33] iscsi.c: " Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 17/33] nfs.c: " Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 18/33] qcow.c: " Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 19/33] QemuOpts: export qemu_opt_find Chunyan Liu
2014-06-05  9:20 ` [Qemu-devel] [PATCH v28 20/33] qcow2.c: replace QEMUOptionParameter with QemuOpts Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 21/33] qed.c: " Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 22/33] raw-posix.c: " Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 23/33] raw-win32.c: " Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 24/33] raw_bsd.c: " Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 25/33] rbd.c: " Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 26/33] sheepdog.c: " Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 27/33] ssh.c: " Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 28/33] vdi.c: " Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 29/33] vhdx.c: " Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 30/33] vmdk.c: " Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 31/33] vpc.c: " Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 32/33] cleanup QEMUOptionParameter Chunyan Liu
2014-06-05  9:21 ` [Qemu-devel] [PATCH v28 33/33] QemuOpts: cleanup tmp 'allocated' member from QemuOptsList Chunyan Liu
2014-06-05 13:28 ` [Qemu-devel] [PATCH v28 00/33] replace QEMUOptionParameter with QemuOpts Stefan Hajnoczi
2014-06-05 13:45   ` Markus Armbruster
2014-06-09  3:08   ` Chun Yan Liu
2014-06-09 13:31     ` Stefan Hajnoczi
2014-06-09 13:31 ` Stefan Hajnoczi
2014-06-11 18:00 ` Stefan Hajnoczi
2014-06-12  7:06   ` Markus Armbruster
2014-06-23 14:06 ` Peter Lieven [this message]
2014-06-26  5:01   ` Chun Yan Liu
2014-06-26  7:19     ` Peter Lieven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53A8347C.6010709@dlhnet.de \
    --to=lieven-lists@dlhnet.de \
    --cc=cyliu@suse.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.