libunwind: update to 1.2
authorYousong Zhou <yszhou4tech@gmail.com>
Mon, 22 May 2017 02:35:10 +0000 (10:35 +0800)
committerYousong Zhou <yszhou4tech@gmail.com>
Mon, 22 May 2017 03:07:40 +0000 (11:07 +0800)
Addresses CVE-2015-3239: Off-by-one error in the dwarf_to_unw_regnum
function in include/dwarf_i.h in libunwind 1.1 allows local users to
have unspecified impact via invalid dwarf opcodes.

Upstream stable-v1.2 fixed the missing unwind_i.h issue but no new
tarball is released yet

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
package/libs/libunwind/Makefile
package/libs/libunwind/patches/001-disable-tests.patch
package/libs/libunwind/patches/004-add-missing-unwind_i.h.patch [new file with mode: 0644]

index 7d51f7487dd9c83f4f53f70e641d2c7e9de4ce29..ba22664b2875a9af6f139ac68bd67581d3013ea5 100644 (file)
@@ -1,5 +1,6 @@
 #
 # Copyright (C) 2008-2013 OpenWrt.org
 #
 # Copyright (C) 2008-2013 OpenWrt.org
+# Copyright (C) 2017 Yousong Zhou <yszhou4tech@gmail.com>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libunwind
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libunwind
-PKG_VERSION:=1.1
+PKG_VERSION:=1.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SAVANNAH/$(PKG_NAME)
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SAVANNAH/$(PKG_NAME)
-PKG_HASH:=9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a
+PKG_HASH:=1de38ffbdc88bd694d10081865871cd2bfbb02ad8ef9e1606aee18d65532b992
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
@@ -36,7 +37,10 @@ define Package/libunwind/description
   Libunwind defines a portable and efficient C programming interface (API) to determine the call-chain of a program.
 endef
 
   Libunwind defines a portable and efficient C programming interface (API) to determine the call-chain of a program.
 endef
 
-CONFIGURE_ARGS += --enable-minidebuginfo=no
+CONFIGURE_ARGS += \
+       --disable-documentation \
+       --enable-minidebuginfo=no \
+
 
 define Package/libunwind/install
        $(INSTALL_DIR) $(1)/usr/lib
 
 define Package/libunwind/install
        $(INSTALL_DIR) $(1)/usr/lib
index 9700fea477635117241d7e15cbcf2c5d199bf3c2..667b6a71e2e8334f5761a6b7554445620d8d00d4 100644 (file)
@@ -1,22 +1,11 @@
 --- a/Makefile.am
 +++ b/Makefile.am
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -36,7 +36,7 @@
+@@ -42,7 +42,7 @@ endif
  
  nodist_include_HEADERS = include/libunwind-common.h
  
  
  nodist_include_HEADERS = include/libunwind-common.h
  
--SUBDIRS = src tests doc
-+SUBDIRS = src doc
+-SUBDIRS = src tests
++SUBDIRS = src
  
  
- noinst_HEADERS = include/dwarf.h include/dwarf_i.h include/dwarf-eh.h \
-       include/compiler.h include/libunwind_i.h include/mempool.h      \
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -313,7 +313,7 @@
-       $(am__append_7) $(am__append_8) $(am__append_9) \
-       $(am__append_10)
- nodist_include_HEADERS = include/libunwind-common.h
--SUBDIRS = src tests doc
-+SUBDIRS = src doc
- noinst_HEADERS = include/dwarf.h include/dwarf_i.h include/dwarf-eh.h \
-       include/compiler.h include/libunwind_i.h include/mempool.h      \
-       include/remote.h                                                \
+ if CONFIG_DOCS
+ SUBDIRS += doc
diff --git a/package/libs/libunwind/patches/004-add-missing-unwind_i.h.patch b/package/libs/libunwind/patches/004-add-missing-unwind_i.h.patch
new file mode 100644 (file)
index 0000000..55a6849
--- /dev/null
@@ -0,0 +1,46 @@
+--- /dev/null  2017-05-16 16:52:50.220000000 +0800
++++ b/src/mips/unwind_i.h      2016-06-13 11:43:06.310153501 +0800
+@@ -0,0 +1,43 @@
++/* libunwind - a platform-independent unwind library
++   Copyright (C) 2008 CodeSourcery
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
++
++#ifndef unwind_i_h
++#define unwind_i_h
++
++#include <stdint.h>
++
++#include <libunwind-mips.h>
++
++#include "libunwind_i.h"
++
++#define mips_lock                       UNW_OBJ(lock)
++#define mips_local_resume               UNW_OBJ(local_resume)
++#define mips_local_addr_space_init      UNW_OBJ(local_addr_space_init)
++
++extern int mips_local_resume (unw_addr_space_t as, unw_cursor_t *cursor,
++                             void *arg);
++
++extern void mips_local_addr_space_init (void);
++
++#endif /* unwind_i_h */