mirror of
https://github.com/capstone-engine/capstone.git
synced 2024-11-24 05:59:45 +00:00
reset prev_prefix at the entry of cs_disasm_ex(). this fixes a nasty segfault bug
This commit is contained in:
parent
084b3a72d7
commit
fd2814b71a
3
cs.c
3
cs.c
@ -309,6 +309,9 @@ size_t cs_disasm_ex(csh ud, const uint8_t *buffer, size_t size, uint64_t offset,
|
||||
|
||||
handle->errnum = CS_ERR_OK;
|
||||
|
||||
// reset previous prefix for X86
|
||||
handle->prev_prefix = 0;
|
||||
|
||||
memset(insn_cache, 0, sizeof(insn_cache));
|
||||
|
||||
while (size > 0) {
|
||||
|
@ -36,6 +36,10 @@ all_tests = (
|
||||
)
|
||||
|
||||
|
||||
# for debugging
|
||||
def to_hex(s):
|
||||
return " ".join("0x" + "{0:x}".format(ord(c)).zfill(2) for c in s) # <-- Python 3 is OK
|
||||
|
||||
def get_code(f, size):
|
||||
code = f.read(size)
|
||||
if len(code) != size: # reached end-of-file?
|
||||
@ -77,12 +81,16 @@ for (arch, mode, comment, syntax) in all_tests:
|
||||
cfile.seek(0)
|
||||
for i in xrange(3):
|
||||
code = get_code(cfile, 128)
|
||||
#print to_hex(code)
|
||||
#print
|
||||
cs(md, code)
|
||||
|
||||
# start real benchmark
|
||||
c_t = 0
|
||||
for i in xrange(50000):
|
||||
code = get_code(cfile, 128)
|
||||
#print to_hex(code)
|
||||
#print
|
||||
|
||||
t1 = time()
|
||||
cs(md, code)
|
||||
|
Loading…
Reference in New Issue
Block a user