Commit Graph

202 Commits

Author SHA1 Message Date
Nguyen Anh Quynh
1d3100ad5b only verify x86_prefix[0] for x86 arch. bug reported by @pancake 2014-07-02 09:08:10 +08:00
Nguyen Anh Quynh
5a7f409dec set @insn to NULL on error in cs_disasm_ex() 2014-06-19 11:15:54 +08:00
Nguyen Anh Quynh
dab17fd0b1 set @insn to NULL on error in cs_disasm_ex() 2014-06-19 11:15:18 +08:00
Nguyen Anh Quynh
6c182aedcf fix a memleaking issue in cs_disasm_ex() where memory was not freed when input code is illegit 2014-06-18 21:50:25 +08:00
Nguyen Anh Quynh
cae09bf543 replace offset_of with offsetof from stddef.h 2014-06-17 14:58:39 +08:00
Nguyen Anh Quynh
64091f77e0 resize total memory allocated for @insns to just the right size for cs_disasm_ex() 2014-06-16 18:37:11 +08:00
Nguyen Anh Quynh
495295ecd4 MCInst_Init() is arch-independent 2014-06-16 15:54:32 +08:00
Nguyen Anh Quynh
db3c00c0ff consider tab as delimiter char in asm bufffer in fill_insn() 2014-06-13 11:16:53 +07:00
Nguyen Anh Quynh
69582d71ae initialize cs_insn.detail by properly zero-out right members for each arch 2014-06-09 17:50:01 +07:00
Nguyen Anh Quynh
c88d9929ae cs_disasm_ex(): properly calculate insn_cache when reallocating total variable 2014-06-09 01:59:00 +08:00
Nguyen Anh Quynh
ee5839420d cs_disasm_ex(): avoid multiple memcpy() by allocating memory for total, then directly work on that instead of using static array insn_cache[] 2014-06-09 00:13:31 +07:00
Nguyen Anh Quynh
5329a6ffd4 directly update cs_insn from MCInst interface to avoid multiple memcpy() 2014-06-08 23:35:52 +07:00
Nguyen Anh Quynh
7566a2d9dd copy mnemonic in the same loop of searching for mnemonic/opstring delimiter 2014-06-08 22:09:31 +08:00
Nguyen Anh Quynh
07e84a2094 do not need to verify handle->insn_id in fill_insn() 2014-06-08 19:27:22 +08:00
Nguyen Anh Quynh
6ddd715fac we have to consider \t in input buffer of fill_insn() 2014-06-08 19:11:38 +08:00
Nguyen Anh Quynh
f8ea346310 properly copy buffer to op_str 2014-06-08 18:57:52 +08:00
Nguyen Anh Quynh
177dd9b223 simplify fill_insn(): do not check for \t in asm buffer 2014-06-08 00:17:10 +08:00
Nguyen Anh Quynh
22a5a761d8 x86: simplify byteReader_t 2014-06-07 23:41:20 +08:00
Nguyen Anh Quynh
df1acfd106 nullify cs_insn.detail when detail is OFF 2014-06-07 15:39:32 +07:00
Nguyen Anh Quynh
30c065998b optimize memset() of MCInst_Init() 2014-06-07 13:30:59 +08:00
Nguyen Anh Quynh
99e69e1868 remove a redundant call to memset() in cs_disasm_ex() 2014-06-06 16:49:23 +08:00
Nguyen Anh Quynh
07c3693cf2 cmake: properly export public APIs in capstone.DLL. thanks to Daniel Pistelli for helping to fix this issue 2014-06-03 18:33:15 +08:00
Nguyen Anh Quynh
9786566aaa msvc: fix some Nmake warnings 2014-05-28 14:33:32 +08:00
Nguyen Anh Quynh
c80d840ffc add XCore architecture 2014-05-26 23:02:48 +08:00
Nguyen Anh Quynh
6456481508 x86: add immediate operand (1) for SHL/SHR/ROR/ROL/SAR/SAL in detail mode & Intel syntax 2014-05-19 16:46:31 +08:00
Nguyen Anh Quynh
8c2e2db84e fix an warning on unused local variable in fill-insn() when CAPSTONE_DIET is defined 2014-05-14 07:32:56 +08:00
Nguyen Anh Quynh
bb0744df5d do not initialize some local vars unnecessarily. this problem was introduced when we fixed C89 issues for MSVC 2014-05-12 13:41:49 +08:00
Axel 0vercl0k Souchet
84fecf2f99 added the debug configuration + correct the macro name for consistency 2014-05-10 09:49:29 +01:00
Axel 0vercl0k Souchet
605faf1db9 moved the hardcoded macros in the vcproj & just disable the warning for the crt 2014-05-09 20:40:00 +01:00
Nguyen Anh Quynh
42706a39e2 indentation with tab 2014-05-09 07:33:35 +08:00
Axel 0vercl0k Souchet
779d4c75d9 first changes to get a successfully compiled version of capstone on VS2012 2014-05-08 23:44:49 +01:00
Giovanni Condello
95657e0ca9 cs.c : Conform to original indentation rules 2014-05-07 17:31:27 +02:00
Giovanni Condello
a715df17a9 Do not access instructions details if the instruction is marked as SKIPDATA or if the details are NULL
Fixes issues #105
2014-05-07 17:25:38 +02:00
Nguyen Anh Quynh
1dbc9593aa x86: use strncpy() to update instruction mnemonic 2014-05-07 14:14:07 +08:00
Nguyen Anh Quynh
a5ffdc3a80 x86: properly handle LOCK/REP in the core, so remove buch of hacks 2014-05-07 08:25:24 +08:00
Nguyen Anh Quynh
6023ef7843 Disassembler -> Disassembly 2014-04-29 11:21:04 +08:00
Nguyen Anh Quynh
2cff6f61fc x86: handle instructions with LOCK/REP/REPNE prefix after other prefixes. bear with this until we have a better approach 2014-04-28 11:19:44 +08:00
Nguyen Anh Quynh
a88c1164bf move the macro MIN to utils.h 2014-04-27 13:38:04 +08:00
Nguyen Anh Quynh
42288ac4e3 SKIPDATA: add 1 more argument to callback function pointing to the input buffer of cs_disasm_ex() 2014-04-14 14:53:13 +08:00
Nguyen Anh Quynh
11ec8817dc core: add CS_ERR_SKIPDATA error code to report when code access irrelevant info in SKIPDATA mode 2014-04-10 17:20:01 +08:00
Nguyen Anh Quynh
07ffd64c38 SKIPDATA: @offset of callback function should indicate the position of examining byte in input buffer 2014-04-10 14:36:08 +08:00
Nguyen Anh Quynh
a89383e81f number of bytes skipped by SKIPDATA option depends on arch 2014-04-10 11:53:46 +08:00
Nguyen Anh Quynh
c75a909371 rename SKIPDATA_MNEM to .byte to make it different from normal instructions 2014-04-10 10:26:49 +08:00
Nguyen Anh Quynh
d3ffe37c47 API: support SKIPDATA option (off by default) 2014-04-09 23:49:30 +08:00
Nguyen Anh Quynh
59b5489d8e x86: rename X86_COMPACT to X86_REDUCE. suggested by Pancake 2014-03-27 10:54:44 +08:00
Nguyen Anh Quynh
9518148e6f add X86_COMPACT option. also add CS_SUPPORT_X86_COMPACT. made Python support this change 2014-03-25 23:20:41 +08:00
Nguyen Anh Quynh
48a14ca4ce add SystemZ arch 2014-03-23 08:35:45 +08:00
Nguyen Anh Quynh
05e27138ae core: add Sparc arch 2014-03-10 11:58:57 +08:00
Nguyen Anh Quynh
5ee2b45518 core: reduce insn_cache's size when USE_SYS_DYN_MEM, not on CAPSTONE_DIET 2014-03-07 08:40:35 +08:00
Nguyen Anh Quynh
034a7487c0 core: C99 fix for cs_disasm_ex() 2014-03-06 22:40:08 +08:00
Nguyen Anh Quynh
472a4a4121 core: reduce default INSN_CACHE_SIZE to 32 to reduce stack memory variable size @insn_cache 2014-03-06 09:13:04 +08:00
Nguyen Anh Quynh
a836b75d30 core: reduce INSN_CACHE_SIZE for diet engine to reduce stack variable size. this might fix a crash for OSX kernel. issue reported by Enzo Matsumiya 2014-03-06 03:36:03 +08:00
Nguyen Anh Quynh
c46c35d3c7 core try to initialize archs as soon as we can by calling archs_enable() everywhere possible 2014-03-05 00:21:53 +08:00
Nguyen Anh Quynh
c8e0785cb6 add some more comments regarding invalidating @handle of cs_close() 2014-02-28 09:38:11 +08:00
Nguyen Anh Quynh
fbe10a55c0 simplify cs_close() when freeing @printer_info, making it future proof for future arch 2014-02-27 23:59:08 +08:00
Nguyen Anh Quynh
ef3d04d75b fix a bug in cs_close(): improper check on handle value 2014-02-27 23:42:49 +08:00
Nguyen Anh Quynh
226d7dca64 change API cs_close() to take pointer to handle as argument. this lets us invalidate the closed handle 2014-02-27 22:20:39 +08:00
Nguyen Anh Quynh
48d583281c cs_support(): typecast query to uint before comparing with CS_ARCH_ALL. this is to avoid potential problems in future when we add more query types 2014-02-27 13:56:01 +08:00
Nguyen Anh Quynh
5848aaafb2 Revert "cs_disasm_ex() should verify handle->disasm() to catch the issue that this API is still called after cs_close(). bug reported by Gul"
This reverts commit 2edef8f27c.
2014-02-27 11:10:41 +08:00
Nguyen Anh Quynh
2edef8f27c cs_disasm_ex() should verify handle->disasm() to catch the issue that this API is still called after cs_close(). bug reported by Gul 2014-02-27 09:54:16 +08:00
Nguyen Anh Quynh
f7cdbdf501 add CS_ERR_DIET error code to report information irrelevant in diet engine 2014-02-24 16:47:36 +08:00
Nguyen Anh Quynh
b2870e4c4c API: extend cs_support() to allow query on diet mode. add CS_SUPPORT_DIET at the same time 2014-02-22 23:41:16 +08:00
Nguyen Anh Quynh
fc83a439e5 add diet compile option (CAPSTONE_DIET option in config.mk). This reduces binary size by around 40% 2014-02-22 23:26:27 +08:00
Nguyen Anh Quynh
a86a1279ff Merge branch 'msvc0' into next1 2014-02-17 23:11:58 +08:00
Nguyen Anh Quynh
4f220287d1 add CS_ERR_VERSION to report error when binding version is different from core's API version 2014-02-09 00:19:15 +08:00
Nguyen Anh Quynh
8ce50e4b49 x86: fix the returned value of cs_disasm_ex() when we have 2 consecutive prefixed instructions. also fix a mem leak bug 2014-01-27 18:15:28 +08:00
Nguyen Anh Quynh
94020d8478 x86: fix the issue with prefix instruction declared in 2.0's RELEASE_NOTES 2014-01-25 14:22:15 +08:00
Nguyen Anh Quynh
743ead0442 fix a bug in cs.c introduced in the last port between branches 2014-01-23 23:47:15 +08:00
Nguyen Anh Quynh
a82a0890a6 more more fixes on C coding style 2014-01-23 23:42:40 +08:00
Alex Ionescu
46018db884 Initial set of changes to support building with MSVC 2013. Right now there's a bunch fo assumptions in the .vcxproj file and some things are not as clean as they should be, but it does build a full build and works (at least the x86 side). The point of this initial checkpoint is to make sure that nothing breaks on the GCC side, that everyone is ok with the changes to the source (or if better fixes/typing can be done). 2014-01-22 09:45:00 -08:00
Nguyen Anh Quynh
11b05193ec reset prev_prefix at the entry of cs_disasm_ex(). this fixes a nasty segfault bug 2014-01-22 11:06:34 +08:00
Nguyen Anh Quynh
fd2814b71a reset prev_prefix at the entry of cs_disasm_ex(). this fixes a nasty segfault bug 2014-01-22 11:04:25 +08:00
Nguyen Anh Quynh
c34959b588 x86: proper calculation for the trailing instruction in total cache. issue reported by Pancake 2014-01-22 09:47:46 +08:00
Nguyen Anh Quynh
c36ce95d4a x86: proper calculation for the trailing instruction in total cache. issue reported by Pancake 2014-01-22 09:46:42 +08:00
Nguyen Anh Quynh
06b3c05e20 cs_open() should return error on invalid mode 2014-01-21 15:27:19 +08:00
Nguyen Anh Quynh
53fc5c103a cs_open() should return error on invalid mode 2014-01-21 15:26:02 +08:00
Nguyen Anh Quynh
7772d859af x86: fix known issue with prefix by combining with previous prefix instruction. this is not perfect, but good enough for now 2014-01-21 11:49:25 +08:00
Nguyen Anh Quynh
c272e9d000 do not use constructor to enable archs, so code is more portable. suggested by Alex Ionescu 2014-01-19 12:03:22 +08:00
Nguyen Anh Quynh
24e122778c cs_op_count() & cs_op_index() report CS_ERR_DETAIL when detail = OFF 2014-01-15 21:27:23 +08:00
Nguyen Anh Quynh
edeeb04a1a make vsnprintf() user-defined function pointer, which is passed in via the same CS_OPT_MEM option like malloc/calloc etc 2014-01-15 20:44:03 +08:00
Nguyen Anh Quynh
a8eb7a5ca5 rename memory function pointer types to have cs_ prefix. also rename internal function pointers my_* to have cs_mem_ prefix - suggested by Pancake 2014-01-11 12:55:31 +08:00
Nguyen Anh Quynh
d159a03f23 tests: proper extensions for newly added static executables 2014-01-09 15:49:44 +08:00
Nguyen Anh Quynh
625b5bcfee comment for the trick to enable constructors in static lib & fix coding style 2014-01-09 14:33:56 +08:00
danghvu
b33bd2cb13 Update static fix: no need to call dummy function 2014-01-09 12:22:56 +07:00
danghvu
ad44e8178e Minor bug 2014-01-09 11:17:20 +07:00
danghvu
701b850af9 Fix: bug that static link does not know constructor 2014-01-09 11:14:40 +07:00
Nguyen Anh Quynh
39b812d9e9 switch detail to be CS_OPT_OFF by default 2014-01-07 23:36:26 +08:00
Nguyen Anh Quynh
9fac512efc no longer need to free insn_cache for each arch: simply do it from cs_close() 2014-01-07 10:56:04 +08:00
Nguyen Anh Quynh
1acfd0b883 move insn_cache into cs_struct to gurantee thread-safe 2014-01-06 10:56:59 +08:00
Nguyen Anh Quynh
8f7ab4981d fix a potential memleak in cs_open() - happened when arch is invalid/unsupported 2014-01-06 09:52:57 +08:00
Nguyen Anh Quynh
c52352d6d9 add new error code CS_ERR_MEMSETUP to report error when user-defined dynamic mem management is uninitialized 2014-01-06 09:06:30 +08:00
Nguyen Anh Quynh
59492c2688 enable system's my_malloc/calloc/realloc/free via compile time option 2014-01-05 23:41:31 +08:00
Nguyen Anh Quynh
c7404075ff move internal memory management declarations from utils.h to cs_priv.h 2014-01-05 11:35:47 +08:00
Nguyen Anh Quynh
24bf0d9079 add new option CS_OPT_MEM for cs_option(): this enable user-defined dynamic memory management. idea proposed by Pancake 2014-01-05 11:19:04 +08:00
Nguyen Anh Quynh
34f96389a9 add new API: cs_strerror() return a string describing a given error code. this should be used together with cs_errno() 2014-01-03 22:49:07 +08:00
Nguyen Anh Quynh
ee143c8c6c fix a crashed bug in cs_close(): call destroy function before freeing handle's memory 2014-01-03 21:51:59 +08:00
Nguyen Anh Quynh
b265406960 cache insns for fast lookup in mapping.c. based on the idea of Dang Hoang Vu 2014-01-03 17:08:58 +08:00
Nguyen Anh Quynh
42c6b1acc7 initial support for PPC 2013-12-30 00:15:25 +08:00
Nguyen Anh Quynh
b90cb993ed API cs_version_ex(): since we already broke API compatibility, we are not afraid to break cs_version() too. this replaces cs_version() with cs_version_ex() 2013-12-28 13:59:09 +08:00
Nguyen Anh Quynh
04c19beefe rename API cs_disasm_dyn() to cs_disasm_ex(), and intentionally breaks compatibility with 1.0 2013-12-25 13:26:22 +08:00