File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 88import base64
99import json
1010import pickle
11+ import StringIO
1112import sys
1213
1314from lib .core .settings import IS_WIN
@@ -67,10 +68,23 @@ def base64unpickle(value):
6768
6869 retVal = None
6970
71+ def _ (self ):
72+ if len (self .stack ) > 1 :
73+ func = self .stack [- 2 ]
74+ if '.' in repr (func ) and " 'lib." not in repr (func ):
75+ raise Exception , "abusing reduce() is bad, Mkay!"
76+ self .load_reduce ()
77+
78+ def loads (str ):
79+ file = StringIO .StringIO (str )
80+ unpickler = pickle .Unpickler (file )
81+ unpickler .dispatch [pickle .REDUCE ] = _
82+ return unpickler .load ()
83+
7084 try :
71- retVal = pickle . loads (base64decode (value ))
85+ retVal = loads (base64decode (value ))
7286 except TypeError :
73- retVal = pickle . loads (base64decode (bytes (value )))
87+ retVal = loads (base64decode (bytes (value )))
7488
7589 return retVal
7690
You can’t perform that action at this time.
0 commit comments