[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 02/11] qemu.py: Avoid dangerous arguments
From: |
Lukáš Doktor |
Subject: |
[Qemu-devel] [PATCH 02/11] qemu.py: Avoid dangerous arguments |
Date: |
Thu, 20 Jul 2017 18:28:06 +0200 |
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>
---
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:
--
2.9.4
- [Qemu-devel] [PATCH 00/11] qemu.py: Pylint/style fixes, Lukáš Doktor, 2017/07/20
- [Qemu-devel] [PATCH 04/11] qemu.py: Simplify QMP key-conversion, Lukáš Doktor, 2017/07/20
- [Qemu-devel] [PATCH 11/11] qtest.py: Avoid using mutable list as default argument, Lukáš Doktor, 2017/07/20
- [Qemu-devel] [PATCH 03/11] qemu.py: Use iteritems rather than keys(), Lukáš Doktor, 2017/07/20
- [Qemu-devel] [PATCH 02/11] qemu.py: Avoid dangerous arguments,
Lukáš Doktor <=
- [Qemu-devel] [PATCH 08/11] qmp.py: Avoid "has_key" usage, Lukáš Doktor, 2017/07/20
- [Qemu-devel] [PATCH 05/11] qemu.py: Use custom exceptions rather than Exception, Lukáš Doktor, 2017/07/20