Commit 9bf5e6bd0f08f66944c29eadf5fa36f22bfbe86c

Authored by Philippe Lagadec
Committed by GitHub
2 parents 6870f158 67a8a404

Merge pull request #357 from neonknight/master

olevba: fix py3 incompatibility
Showing 1 changed file with 6 additions and 3 deletions
oletools/olevba.py
@@ -246,7 +246,10 @@ import sys @@ -246,7 +246,10 @@ import sys
246 import os 246 import os
247 import logging 247 import logging
248 import struct 248 import struct
249 -import cStringIO 249 +try:
  250 + from cStringIO import StringIO
  251 +except ImportError:
  252 + from io import StringIO
250 import math 253 import math
251 import zipfile 254 import zipfile
252 import re 255 import re
@@ -1352,7 +1355,7 @@ def _extract_vba(ole, vba_root, project_path, dir_path, relaxed=False): @@ -1352,7 +1355,7 @@ def _extract_vba(ole, vba_root, project_path, dir_path, relaxed=False):
1352 else: 1355 else:
1353 raise UnexpectedDataError(dir_path, name, expected, value) 1356 raise UnexpectedDataError(dir_path, name, expected, value)
1354 1357
1355 - dir_stream = cStringIO.StringIO(decompress_stream(dir_compressed)) 1358 + dir_stream = StringIO(decompress_stream(dir_compressed))
1356 1359
1357 # PROJECTSYSKIND Record 1360 # PROJECTSYSKIND Record
1358 projectsyskind_id = struct.unpack("<H", dir_stream.read(2))[0] 1361 projectsyskind_id = struct.unpack("<H", dir_stream.read(2))[0]
@@ -2309,7 +2312,7 @@ class VBA_Parser(object): @@ -2309,7 +2312,7 @@ class VBA_Parser(object):
2309 _file = filename 2312 _file = filename
2310 else: 2313 else:
2311 # file already read in memory, make it a file-like object for zipfile: 2314 # file already read in memory, make it a file-like object for zipfile:
2312 - _file = cStringIO.StringIO(data) 2315 + _file = StringIO(data)
2313 #self.file = _file 2316 #self.file = _file
2314 self.ole_file = None 2317 self.ole_file = None
2315 self.ole_subfiles = [] 2318 self.ole_subfiles = []