From b529c0155f12309f4ac59d7a6e93cb5d630132c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20L=C3=A9one?= <remy.leone@gmail.com> Date: Thu, 12 May 2016 15:37:57 +0200 Subject: [PATCH] Default argument shouldn't be mutable --- scapy/arch/windows/__init__.py | 4 +++- scapy/asn1/mib.py | 4 +++- scapy/contrib/carp.py | 6 +++++- scapy/contrib/isis.py | 4 +++- scapy/contrib/ospf.py | 16 ++++++++++++---- scapy/modules/voip.py | 8 ++++++-- 6 files changed, 32 insertions(+), 10 deletions(-) diff --git a/scapy/arch/windows/__init__.py b/scapy/arch/windows/__init__.py index 44f3569b..e8f4fbce 100755 --- a/scapy/arch/windows/__init__.py +++ b/scapy/arch/windows/__init__.py @@ -131,8 +131,10 @@ def exec_query(cmd, fields): return _exec_query_ps(cmd, fields) -def _where(filename, dirs=[], env="PATH"): +def _where(filename, dirs=None, env="PATH"): """Find file in current dir or system path""" + if dirs is None: + dirs = [] if not isinstance(dirs, list): dirs = [dirs] if glob(filename): diff --git a/scapy/asn1/mib.py b/scapy/asn1/mib.py index c3aa59c1..a77bbe84 100644 --- a/scapy/asn1/mib.py +++ b/scapy/asn1/mib.py @@ -50,7 +50,9 @@ class MIBDict(DADict): return x xl[p] = self[xl[p]] return ".".join(xl[p:]) - def _make_graph(self, other_keys=[], **kargs): + def _make_graph(self, other_keys=None, **kargs): + if other_keys is None: + other_keys = [] nodes = [(k, self[k]) for k in self.iterkeys()] oids = [self[k] for k in self.iterkeys()] for k in other_keys: diff --git a/scapy/contrib/carp.py b/scapy/contrib/carp.py index e785adef..3831aae4 100644 --- a/scapy/contrib/carp.py +++ b/scapy/contrib/carp.py @@ -33,7 +33,11 @@ class CARP(Packet): return pkt -def build_hmac_sha1(pkt, pw = '\0' * 20, ip4l = [], ip6l = []): +def build_hmac_sha1(pkt, pw = '\0' * 20, ip4l=None, ip6l=None): + if ip4l is None: + ip4l = [] + if ip6l is None: + ip6l = [] if not pkt.haslayer(CARP): return None diff --git a/scapy/contrib/isis.py b/scapy/contrib/isis.py index 39fbe90d..34325657 100644 --- a/scapy/contrib/isis.py +++ b/scapy/contrib/isis.py @@ -211,8 +211,10 @@ class ISIS_LspIdField(_ISIS_IdFieldBase): class ISIS_CircuitTypeField(FlagsField): def __init__(self, name="circuittype", default=2, size=8, - names=["L1", "L2", "r0", "r1", "r2", "r3", "r4", "r5"]): + names=None): FlagsField.__init__(self, name, default, size, names) + if names is None: + names = ["L1", "L2", "r0", "r1", "r2", "r3", "r4", "r5"] ####################################################################### diff --git a/scapy/contrib/ospf.py b/scapy/contrib/ospf.py index dc2fca1f..66c79b3e 100644 --- a/scapy/contrib/ospf.py +++ b/scapy/contrib/ospf.py @@ -32,8 +32,10 @@ EXT_VERSION = "v0.9.2" class OSPFOptionsField(FlagsField): def __init__(self, name="options", default=0, size=8, - names=["MT", "E", "MC", "NP", "L", "DC", "O", "DN"]): + names=None): FlagsField.__init__(self, name, default, size, names) + if names is None: + names = ["MT", "E", "MC", "NP", "L", "DC", "O", "DN"] _OSPF_types = {1: "Hello", @@ -127,8 +129,10 @@ class LLS_Generic_TLV(Packet): class LLS_ExtendedOptionsField(FlagsField): def __init__(self, name="options", default=0, size=32, - names=["LR", "RS"]): + names=None): FlagsField.__init__(self, name, default, size, names) + if names is None: + names = ["LR", "RS"] class LLS_Extended_Options(LLS_Generic_TLV): @@ -452,8 +456,10 @@ class OSPFv3_Hdr(Packet): class OSPFv3OptionsField(FlagsField): def __init__(self, name="options", default=0, size=24, - names=["V6", "E", "MC", "N", "R", "DC", "AF", "L", "I", "F"]): + names=None): FlagsField.__init__(self, name, default, size, names) + if names is None: + names = ["V6", "E", "MC", "N", "R", "DC", "AF", "L", "I", "F"] class OSPFv3_Hello(Packet): @@ -567,8 +573,10 @@ class OSPFv3_Network_LSA(OSPF_BaseLSA): class OSPFv3PrefixOptionsField(FlagsField): def __init__(self, name="prefixoptions", default=0, size=8, - names=["NU", "LA", "MC", "P"]): + names=None): FlagsField.__init__(self, name, default, size, names) + if names is None: + names = ["NU", "LA", "MC", "P"] class OSPFv3_Inter_Area_Prefix_LSA(OSPF_BaseLSA): diff --git a/scapy/modules/voip.py b/scapy/modules/voip.py index b2542b4d..de9ed1d3 100644 --- a/scapy/modules/voip.py +++ b/scapy/modules/voip.py @@ -48,7 +48,9 @@ def voip_play(s1,list=None,**kargs): fcntl.fcntl(c2.fileno(),fcntl.F_SETFL, os.O_NONBLOCK) # dsp,rd = os.popen2("sox -t .ul -c 2 - -t ossdsp /dev/dsp") - def play(pkt,last=[]): + def play(pkt, last=None): + if last is None: + last = [] if not pkt: return if not pkt.haslayer(UDP): @@ -105,7 +107,9 @@ def voip_play1(s1,list=None,**kargs): def voip_play2(s1,**kargs): dsp,rd = os.popen2("sox -t .ul -c 2 - -t ossdsp /dev/dsp") - def play(pkt,last=[]): + def play(pkt, last=None): + if last is None: + last = [] if not pkt: return if not pkt.haslayer(UDP): -- GitLab