@@ -27,6 +27,7 @@ class Wordlist(six.Iterator):
2727 def __init__ (self , filenames , proc_id = None , proc_count = None , custom = None ):
2828 self .filenames = [filenames ] if isinstance (filenames , six .string_types ) else filenames
2929 self .fp = None
30+ self .zip_file = None
3031 self .index = 0
3132 self .counter = - 1
3233 self .current = None
@@ -49,16 +50,16 @@ def adjust(self):
4950 self .current = self .filenames [self .index ]
5051 if isZipFile (self .current ):
5152 try :
52- _ = zipfile .ZipFile (self .current , 'r' )
53+ self . zip_file = zipfile .ZipFile (self .current , 'r' )
5354 except zipfile .error as ex :
5455 errMsg = "something appears to be wrong with "
5556 errMsg += "the file '%s' ('%s'). Please make " % (self .current , getSafeExString (ex ))
5657 errMsg += "sure that you haven't made any changes to it"
5758 raise SqlmapInstallationException (errMsg )
58- if len (_ .namelist ()) == 0 :
59+ if len (self . zip_file .namelist ()) == 0 :
5960 errMsg = "no file(s) inside '%s'" % self .current
6061 raise SqlmapDataException (errMsg )
61- self .fp = _ . open (_ .namelist ()[0 ])
62+ self .fp = self . zip_file . open (self . zip_file .namelist ()[0 ])
6263 else :
6364 self .fp = open (self .current , "rb" )
6465 self .iter = iter (self .fp )
@@ -70,6 +71,10 @@ def closeFP(self):
7071 self .fp .close ()
7172 self .fp = None
7273
74+ if self .zip_file :
75+ self .zip_file .close ()
76+ self .zip_file = None
77+
7378 def __next__ (self ):
7479 retVal = None
7580 while True :
0 commit comments