qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 02/11] qemu.py: Avoid dangerous arguments


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH 02/11] qemu.py: Avoid dangerous arguments
Date: Fri, 21 Jul 2017 22:22:33 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1

On 07/20/2017 01:28 PM, Lukáš Doktor wrote:
The list object is mutable in python and potentially might modify other
object's arguments when used as default argument. Reproducer:

     >>> vm1 = QEMUMachine("qemu")
     >>> vm2 = QEMUMachine("qemu")
     >>> vm1._wrapper.append("foo")
     >>> print vm2._wrapper
     ['foo']

In this case the `args` is actually copied so it would be safe to keep
it, but it's not a good practice to keep it.

Signed-off-by: Lukáš Doktor <address@hidden>

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

---
  scripts/qemu.py | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/scripts/qemu.py b/scripts/qemu.py
index 191c916..66fd863 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -23,7 +23,7 @@ import qmp.qmp
  class QEMUMachine(object):
      '''A QEMU VM'''
- def __init__(self, binary, args=[], wrapper=[], name=None,
+    def __init__(self, binary, args=None, wrapper=None, name=None,
                   test_dir="/var/tmp", monitor_address=None,
                   socket_scm_helper=None, debug=False):
          '''
@@ -39,6 +39,10 @@ class QEMUMachine(object):
          @param debug: enable debug mode (forwarded to QMP helper and such)
          @note: Qemu process is not started until launch() is used.
          '''
+        if args is None:
+            args = []
+        if wrapper is None:
+            wrapper = []
          if name is None:
              name = "qemu-%d" % os.getpid()
          if monitor_address is None:




reply via email to

[Prev in Thread] Current Thread [Next in Thread]