* first cstool -- Segmentation fault: 11
* Modify the format of output.
* Preprocess the input from user. The result of converting looks right but the disassembly is not unsatisfactory.
* Skip the character not in set A = {'a'~'f','A'~'F','0'~'9'}.
i Please enter the commit message for your changes. Lines starting
* delete cstool binary
* using isxdigit() to tests for any hexadecimal-digit character
* write README
* final version 1.0 for cstool
When the python bindings are installed using the new wheels
infrastructure, data_files are relative to the site-packages directory
even if using absolute paths.
The following example demonstrates the bug fixed by this commit: (ran on archlinux)
```bash
$ pip install wheel # if this package is installed, wheel installation is made the default
Collecting wheel
Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
100% |################################| 71kB 124kB/s
Installing collected packages: wheel
Successfully installed wheel-0.29.0
$ pip install capstone # this will use the wheel installation method now
Collecting capstone
Using cached capstone-3.0.4.tar.gz
Building wheels for collected packages: capstone
Running setup.py bdist_wheel for capstone ... done
Stored in directory: /root/.cache/pip/wheels/7c/d1/d0/db6e2c5ef1063aabb9de2dd8b92b4c27ee6f9fd213240099b8
Successfully built capstone
Installing collected packages: capstone
Successfully installed capstone-3.0.4
$ find /usr/lib/ -name "libcapstone.so"
/usr/lib/python3.5/site-packages/usr/lib/python3.5/site-packages/capstone/libcapstone.so
```
So the path `SITE_PACKAGES` in the `data_files` specification of the
setup.py file was interpreted relative to the python site-packages
directory. The fix for this is simple: use `/capstone` instead of an
absolute path for `SITE_PACKAGES`.
The MSVC project capstone_static_winkernel uses __stdcall as a
default calling convention to fit with environment for Windows driver
development. This leads to a compile error in a use of qsort() with
regs_cmp() since it is compiled as a __stdcall function while qsort()
expects a __cdelc function.
This fix adds explicit calling convention to regs_cmp() for MSVC.
Signed-off-by: Satoshi Tanda <tanda.sat@gmail.com>
Caught by Valgrind:
Conditional jump or move depends on uninitialised value(s)
at 0xD5BB6F: readModRM (X86DisassemblerDecoder.c:1528)
by 0xD5BF02: getIDWithAttrMask (X86DisassemblerDecoder.c:1101)
by 0xD5CC5E: getID (X86DisassemblerDecoder.c:1249)
by 0xD5CC5E: decodeInstruction (X86DisassemblerDecoder.c:2335)
by 0xD52009: X86_getInstruction (X86Disassembler.c:822)
by 0xD51781: cs_disasm (cs.c:503)