Unsquashfs was segfaulting. When examining in gdb the stack was corrupt. I found that converting the variable length arrays to malloc caused the stack corruption to not happen and the segfault went away. This is due to the musl pthread stack size being 80k by default. So the chance of a stack overflow is high. Signed-off-by: Colby Whitney <colby.whitney@luxul.com>
90 lines
2.3 KiB
Makefile
90 lines
2.3 KiB
Makefile
#
|
|
# Copyright (C) 2016 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=squashfs-tools
|
|
PKG_VERSION:=4.3
|
|
PKG_RELEASE:=5
|
|
PKG_LICENSE:=GPL-2.0
|
|
PKG_LICENSE_FILES:=COPYING
|
|
|
|
PKG_SOURCE_PROTO:=git
|
|
PKG_SOURCE_URL:=https://github.com/plougher/squashfs-tools
|
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
|
PKG_SOURCE_VERSION:=9c1db6d13a51a2e009f0027ef336ce03624eac0d
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
|
PKG_MIRROR_HASH:=4e9a017561b6f9d7b9782c7c672d224726ffd069b0543f310e85ed8ab1c4589b
|
|
|
|
PKG_BUILD_PARALLEL:=1
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/squashfs-tools/Default
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
SUBMENU:=Filesystem
|
|
TITLE:=squashfs-tools
|
|
URL:=https://github.com/plougher/squashfs-tools
|
|
DEPENDS += +libpthread +zlib \
|
|
+SQUASHFS_TOOLS_LZO_SUPPORT:liblzo \
|
|
+SQUASHFS_TOOLS_LZ4_SUPPORT:liblz4 \
|
|
+SQUASHFS_TOOLS_XZ_SUPPORT:liblzma
|
|
MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
|
|
endef
|
|
|
|
define Package/squashfs-tools-mksquashfs
|
|
$(call Package/squashfs-tools/Default)
|
|
TITLE+= mksquashfs
|
|
endef
|
|
|
|
define Package/squashfs-tools-unsquashfs
|
|
$(call Package/squashfs-tools/Default)
|
|
TITLE+= unsquashfs
|
|
endef
|
|
|
|
define Package/squashfs-tools-unsquashfs/config
|
|
source "$(SOURCE)/Config.in"
|
|
endef
|
|
|
|
Build/Configure:=
|
|
|
|
MAKE_FLAGS += \
|
|
XATTR_SUPPORT=
|
|
|
|
ifneq ($(CONFIG_SQUASHFS_TOOLS_XZ_SUPPORT),)
|
|
MAKE_FLAGS += XZ_SUPPORT=1
|
|
endif
|
|
|
|
ifneq ($(CONFIG_SQUASHFS_TOOLS_LZO_SUPPORT),)
|
|
MAKE_FLAGS += LZO_SUPPORT=1
|
|
endif
|
|
|
|
ifneq ($(CONFIG_SQUASHFS_TOOLS_LZ4_SUPPORT),)
|
|
MAKE_FLAGS += LZ4_SUPPORT=1
|
|
endif
|
|
|
|
define Build/Compile
|
|
$(MAKE) -C $(PKG_BUILD_DIR)/squashfs-tools \
|
|
CC="$(TARGET_CC)" \
|
|
EXTRA_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
|
|
EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
|
|
$(MAKE_FLAGS) \
|
|
mksquashfs unsquashfs
|
|
endef
|
|
|
|
define Package/squashfs-tools-mksquashfs/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/squashfs-tools/mksquashfs $(1)/usr/sbin/mksquashfs
|
|
endef
|
|
|
|
define Package/squashfs-tools-unsquashfs/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/squashfs-tools/unsquashfs $(1)/usr/sbin/unsquashfs
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,squashfs-tools-mksquashfs))
|
|
$(eval $(call BuildPackage,squashfs-tools-unsquashfs))
|