Skip to content

Commit

Permalink
update for 2.1.1 stable release
Browse files Browse the repository at this point in the history
  • Loading branch information
aquynh committed Mar 11, 2014
1 parent abd7790 commit 56db639
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 50 deletions.
16 changes: 16 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
This file details the changelog of Capstone.

---------------------------------
Version 2.1.1: March 13th, 2014

This is a stable release to fix some bugs deep in the core. There is no update
to any architectures or bindings, so bindings version 2.1 can be used with this
version 2.1.1 just fine.

[ Core changes]

- Fix a buffer overflow bug in Thumb mode (ARM). Some special input can
trigger this flaw.
- Fix a crash issue when embedding Capstone into OSX kernel. This should
enable Capstone to be embedded into other systems with limited stack
memory size such as Linux kernel or some firmwares.
- Use a proper SONAME for library versioning (Linux).

---------------------------------
Version 2.1: March 5th, 2014

Expand Down
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,9 @@ else
# Linux, *BSD
EXT = so
AR_EXT = a
LDFLAGS += -Wl,-soname,lib$(LIBNAME)$(PKG_MAJOR)
API_MAJOR=$(shell echo `grep -e CS_API_MAJOR include/capstone.h | grep -v = | awk '{print $$2}'` | awk '{print $$1}')

LDFLAGS += -Wl,-soname,lib$(LIBNAME)$(API_MAJOR)
endif
endif
endif
Expand Down
48 changes: 0 additions & 48 deletions RELEASE_NOTES
Original file line number Diff line number Diff line change
@@ -1,48 +0,0 @@
1. API change

Version 2.1 changes the API cs_close() from (prototype):

cs_err cs_close(csh handle);

to:

cs_err cs_close(csh *handle);


Therefore, all C code written on top of Capstone must be fixed accordingly,
from something like:


csh handle;
//....
cs_close(handle); // <-- cs_close() used to take handle as argument.

to:

csh handle;
//....
cs_close(&handle); // <-- cs_close() now takes pointer to handle as argument.


Internally, this change is to invalidate @handle, making sure it cannot be
mistakenly used after the handle is closed.


NOTE: this change is on C interface only. All the bindings Python, Java or
bindings made by community such as C#, Go, Ruby & Vala should hide this change
behind their API. For this reason, code using these bindings still work exactly
like before and do not need to have any modification.


2. Upgrade bindings

Version 2.1 makes some changes to Java & Python bindings, like adding some new
instructions (affecting *_const.py & *_const.java). While this does not break
API compatibility (i.e users do not need to modify their program written with
prior version 2.0), they must upgrade these bindings and must not use the old
bindings from prior versions.

We cannot emphasize this enough: When upgrading to the new engine, always
upgrade to the bindings coming with the same core. If do not follow this
principle, applications can silently break without any clear evidence,
making it very hard to debug sometimes.
2 changes: 1 addition & 1 deletion pkgconfig.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ PKG_MAJOR = 2
PKG_MINOR = 1

# version bugfix level. Example: PKG_EXTRA = 1
PKG_EXTRA =
PKG_EXTRA = 1


0 comments on commit 56db639

Please sign in to comment.