diff --git a/ChangeLog b/ChangeLog index 141ed91557..37bda4cdab 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 diff --git a/Makefile b/Makefile index 6a0b033109..42171fc289 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/RELEASE_NOTES b/RELEASE_NOTES index eda37c458d..e69de29bb2 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -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. diff --git a/pkgconfig.mk b/pkgconfig.mk index e265e8c0a4..0fc9140eb1 100644 --- a/pkgconfig.mk +++ b/pkgconfig.mk @@ -6,6 +6,6 @@ PKG_MAJOR = 2 PKG_MINOR = 1 # version bugfix level. Example: PKG_EXTRA = 1 -PKG_EXTRA = +PKG_EXTRA = 1