You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-04 01:09:52 +08:00
marshal unpack cast bug
This commit is contained in:
@@ -202,10 +202,10 @@ def load(fp):
|
|||||||
if marshalType == 'c':
|
if marshalType == 'c':
|
||||||
Code = types.CodeType
|
Code = types.CodeType
|
||||||
|
|
||||||
co_argcount = unpack('l', fp.read(4))[0]
|
co_argcount = unpack('i', fp.read(4))[0]
|
||||||
co_nlocals = unpack('l', fp.read(4))[0]
|
co_nlocals = unpack('i', fp.read(4))[0]
|
||||||
co_stacksize = unpack('l', fp.read(4))[0]
|
co_stacksize = unpack('i', fp.read(4))[0]
|
||||||
co_flags = unpack('l', fp.read(4))[0]
|
co_flags = unpack('i', fp.read(4))[0]
|
||||||
co_code = load(fp)
|
co_code = load(fp)
|
||||||
co_consts = load(fp)
|
co_consts = load(fp)
|
||||||
co_names = load(fp)
|
co_names = load(fp)
|
||||||
@@ -214,7 +214,7 @@ def load(fp):
|
|||||||
co_cellvars = load(fp)
|
co_cellvars = load(fp)
|
||||||
co_filename = load(fp)
|
co_filename = load(fp)
|
||||||
co_name = load(fp)
|
co_name = load(fp)
|
||||||
co_firstlineno = unpack('l', fp.read(4))[0]
|
co_firstlineno = unpack('i', fp.read(4))[0]
|
||||||
co_lnotab = load(fp)
|
co_lnotab = load(fp)
|
||||||
return Code(co_argcount, co_nlocals, co_stacksize, co_flags, co_code, co_consts, co_names,\
|
return Code(co_argcount, co_nlocals, co_stacksize, co_flags, co_code, co_consts, co_names,\
|
||||||
co_varnames, co_filename, co_name, co_firstlineno, co_lnotab, co_freevars, co_cellvars)
|
co_varnames, co_filename, co_name, co_firstlineno, co_lnotab, co_freevars, co_cellvars)
|
||||||
@@ -240,7 +240,7 @@ def load(fp):
|
|||||||
elif marshalType == 'g':
|
elif marshalType == 'g':
|
||||||
return float(unpack('d', fp.read(8))[0])
|
return float(unpack('d', fp.read(8))[0])
|
||||||
elif marshalType == 'i':
|
elif marshalType == 'i':
|
||||||
return int(unpack('l', fp.read(4))[0])
|
return int(unpack('i', fp.read(4))[0])
|
||||||
elif marshalType == 'I':
|
elif marshalType == 'I':
|
||||||
raise KeyError, marshalType
|
raise KeyError, marshalType
|
||||||
return None
|
return None
|
||||||
@@ -251,7 +251,7 @@ def load(fp):
|
|||||||
raise KeyError, marshalType
|
raise KeyError, marshalType
|
||||||
return None
|
return None
|
||||||
elif marshalType == 'l':
|
elif marshalType == 'l':
|
||||||
n = unpack('l', fp.read(4))[0]
|
n = unpack('i', fp.read(4))[0]
|
||||||
if n == 0:
|
if n == 0:
|
||||||
return long(0)
|
return long(0)
|
||||||
size = abs(n);
|
size = abs(n);
|
||||||
@@ -264,23 +264,23 @@ def load(fp):
|
|||||||
return d
|
return d
|
||||||
# strings type
|
# strings type
|
||||||
elif marshalType == 'R':
|
elif marshalType == 'R':
|
||||||
refnum = unpack('l', fp.read(4))[0]
|
refnum = unpack('i', fp.read(4))[0]
|
||||||
return internStrings[refnum]
|
return internStrings[refnum]
|
||||||
elif marshalType == 's':
|
elif marshalType == 's':
|
||||||
strsize = unpack('l', fp.read(4))[0]
|
strsize = unpack('i', fp.read(4))[0]
|
||||||
return str(fp.read(strsize))
|
return str(fp.read(strsize))
|
||||||
elif marshalType == 't':
|
elif marshalType == 't':
|
||||||
strsize = unpack('l', fp.read(4))[0]
|
strsize = unpack('i', fp.read(4))[0]
|
||||||
interned = str(fp.read(strsize))
|
interned = str(fp.read(strsize))
|
||||||
internStrings.append(interned)
|
internStrings.append(interned)
|
||||||
return interned
|
return interned
|
||||||
elif marshalType == 'u':
|
elif marshalType == 'u':
|
||||||
strsize = unpack('l', fp.read(4))[0]
|
strsize = unpack('i', fp.read(4))[0]
|
||||||
unicodestring = fp.read(strsize)
|
unicodestring = fp.read(strsize)
|
||||||
return unicodestring.decode('utf-8')
|
return unicodestring.decode('utf-8')
|
||||||
# collection type
|
# collection type
|
||||||
elif marshalType == '(':
|
elif marshalType == '(':
|
||||||
tuplesize = unpack('l', fp.read(4))[0]
|
tuplesize = unpack('i', fp.read(4))[0]
|
||||||
ret = tuple()
|
ret = tuple()
|
||||||
while tuplesize > 0:
|
while tuplesize > 0:
|
||||||
ret += load(fp),
|
ret += load(fp),
|
||||||
|
Reference in New Issue
Block a user