c5f5d9fa4e
Fixes CVE-2017-2629 - curl SSL_VERIFYSTATUS ignored >From the advisory (http://www.openwall.com/lists/oss-security/2017/02/21/6): Curl and libcurl support "OCSP stapling", also known as the TLS Certificate Status Request extension (using the `CURLOPT_SSL_VERIFYSTATUS` option). When telling curl to use this feature, it uses that TLS extension to ask for a fresh proof of the server's certificate's validity. If the server doesn't support the extension, or fails to provide said proof, curl is expected to return an error. Due to a coding mistake, the code that checks for a test success or failure, ends up always thinking there's valid proof, even when there is none or if the server doesn't support the TLS extension in question. Contrary to how it used to function and contrary to how this feature is documented to work. This could lead to users not detecting when a server's certificate goes invalid or otherwise be mislead that the server is in a better shape than it is in reality. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
86 lines
2.8 KiB
Makefile
86 lines
2.8 KiB
Makefile
################################################################################
|
|
#
|
|
# libcurl
|
|
#
|
|
################################################################################
|
|
|
|
LIBCURL_VERSION = 7.53.0
|
|
LIBCURL_SOURCE = curl-$(LIBCURL_VERSION).tar.bz2
|
|
LIBCURL_SITE = https://curl.haxx.se/download
|
|
LIBCURL_DEPENDENCIES = host-pkgconf \
|
|
$(if $(BR2_PACKAGE_ZLIB),zlib) \
|
|
$(if $(BR2_PACKAGE_LIBIDN),libidn) \
|
|
$(if $(BR2_PACKAGE_RTMPDUMP),rtmpdump)
|
|
LIBCURL_LICENSE = ISC
|
|
LIBCURL_LICENSE_FILES = COPYING
|
|
LIBCURL_INSTALL_STAGING = YES
|
|
|
|
# We disable NTLM support because it uses fork(), which doesn't work
|
|
# on non-MMU platforms. Moreover, this authentication method is
|
|
# probably almost never used. See
|
|
# http://curl.haxx.se/docs/manpage.html#--ntlm.
|
|
LIBCURL_CONF_OPTS = --disable-manual --disable-ntlm-wb \
|
|
--enable-hidden-symbols --with-random=/dev/urandom --disable-curldebug
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBCURL_VERBOSE),y)
|
|
LIBCURL_CONF_OPTS += --enable-verbose
|
|
else
|
|
LIBCURL_CONF_OPTS += --disable-verbose
|
|
endif
|
|
|
|
LIBCURL_CONFIG_SCRIPTS = curl-config
|
|
|
|
ifeq ($(BR2_PACKAGE_OPENSSL),y)
|
|
LIBCURL_DEPENDENCIES += openssl
|
|
LIBCURL_CONF_ENV += ac_cv_lib_crypto_CRYPTO_lock=yes
|
|
# configure adds the cross openssl dir to LD_LIBRARY_PATH which screws up
|
|
# native stuff during the rest of configure when target == host.
|
|
# Fix it by setting LD_LIBRARY_PATH to something sensible so those libs
|
|
# are found first.
|
|
LIBCURL_CONF_ENV += LD_LIBRARY_PATH=$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)/lib:/usr/lib
|
|
LIBCURL_CONF_OPTS += --with-ssl=$(STAGING_DIR)/usr \
|
|
--with-ca-path=/etc/ssl/certs
|
|
else ifeq ($(BR2_PACKAGE_GNUTLS),y)
|
|
LIBCURL_CONF_OPTS += --with-gnutls=$(STAGING_DIR)/usr
|
|
LIBCURL_DEPENDENCIES += gnutls
|
|
else ifeq ($(BR2_PACKAGE_LIBNSS),y)
|
|
LIBCURL_CONF_OPTS += --with-nss=$(STAGING_DIR)/usr
|
|
LIBCURL_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) `$(PKG_CONFIG_HOST_BINARY) nspr nss --cflags`"
|
|
LIBCURL_DEPENDENCIES += libnss
|
|
else ifeq ($(BR2_PACKAGE_MBEDTLS),y)
|
|
LIBCURL_CONF_OPTS += --with-mbedtls=$(STAGING_DIR)/usr
|
|
LIBCURL_DEPENDENCIES += mbedtls
|
|
else
|
|
LIBCURL_CONF_OPTS += --without-ssl --without-gnutls \
|
|
--without-polarssl --without-nss --without-mbedtls
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_C_ARES),y)
|
|
LIBCURL_DEPENDENCIES += c-ares
|
|
LIBCURL_CONF_OPTS += --enable-ares
|
|
else
|
|
LIBCURL_CONF_OPTS += --disable-ares
|
|
endif
|
|
|
|
# Configure curl to support libssh2
|
|
ifeq ($(BR2_PACKAGE_LIBSSH2),y)
|
|
LIBCURL_DEPENDENCIES += libssh2
|
|
LIBCURL_CONF_OPTS += --with-libssh2
|
|
else
|
|
LIBCURL_CONF_OPTS += --without-libssh2
|
|
endif
|
|
|
|
define LIBCURL_FIX_DOT_PC
|
|
printf 'Requires: openssl\n' >>$(@D)/libcurl.pc.in
|
|
endef
|
|
LIBCURL_POST_PATCH_HOOKS += $(if $(BR2_PACKAGE_OPENSSL),LIBCURL_FIX_DOT_PC)
|
|
|
|
ifeq ($(BR2_PACKAGE_CURL),)
|
|
define LIBCURL_TARGET_CLEANUP
|
|
rm -rf $(TARGET_DIR)/usr/bin/curl
|
|
endef
|
|
LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_TARGET_CLEANUP
|
|
endif
|
|
|
|
$(eval $(autotools-package))
|