@@ -117,42 +117,50 @@ def __setOutputResume():
117117 logger .info ("using '%s' as session file" % conf .sessionFile )
118118
119119 if os .path .exists (conf .sessionFile ):
120- readSessionFP = open (conf .sessionFile , "r" )
121- lines = readSessionFP .readlines ()
122-
123- for line in lines :
124- if line .count ("][" ) == 4 :
125- line = line .split ("][" )
126-
127- if len (line ) != 5 :
128- continue
129-
130- url , _ , _ , expression , value = line
131-
132- if not value :
133- continue
134-
135- if url [0 ] == "[" :
136- url = url [1 :]
137-
138- if value [- 1 ] == "\n " :
139- value = value [:- 1 ]
140-
141- if url != conf .url :
142- continue
143-
144- if url not in kb .resumedQueries .keys ():
145- kb .resumedQueries [url ] = {}
146- kb .resumedQueries [url ][expression ] = value
147-
148- resumeConfKb (expression , url , value )
149-
150- if expression not in kb .resumedQueries [url ].keys ():
151- kb .resumedQueries [url ][expression ] = value
152- elif len (value ) >= len (kb .resumedQueries [url ][expression ]):
153- kb .resumedQueries [url ][expression ] = value
154-
155- readSessionFP .close ()
120+ if not conf .flushSession :
121+ readSessionFP = open (conf .sessionFile , "r" )
122+ lines = readSessionFP .readlines ()
123+
124+ for line in lines :
125+ if line .count ("][" ) == 4 :
126+ line = line .split ("][" )
127+
128+ if len (line ) != 5 :
129+ continue
130+
131+ url , _ , _ , expression , value = line
132+
133+ if not value :
134+ continue
135+
136+ if url [0 ] == "[" :
137+ url = url [1 :]
138+
139+ if value [- 1 ] == "\n " :
140+ value = value [:- 1 ]
141+
142+ if url != conf .url :
143+ continue
144+
145+ if url not in kb .resumedQueries .keys ():
146+ kb .resumedQueries [url ] = {}
147+ kb .resumedQueries [url ][expression ] = value
148+
149+ resumeConfKb (expression , url , value )
150+
151+ if expression not in kb .resumedQueries [url ].keys ():
152+ kb .resumedQueries [url ][expression ] = value
153+ elif len (value ) >= len (kb .resumedQueries [url ][expression ]):
154+ kb .resumedQueries [url ][expression ] = value
155+
156+ readSessionFP .close ()
157+ else :
158+ try :
159+ os .remove (conf .sessionFile )
160+ logger .info ("flushing session file" )
161+ except OSError , msg :
162+ errMsg = "unable to flush the session file (%s)" % msg
163+ raise sqlmapFilePathException , errMsg
156164
157165 try :
158166 conf .sessionFP = open (conf .sessionFile , "a" )
0 commit comments