From 30edff3c2f5d9c8019217f087b5ddb0cd3caade9 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Mon, 29 Mar 2010 23:14:47 +0000
Subject: [PATCH] openssl: add patch for CVE-2010-0740 ("Record of death")
 vulnerability

SVN-Revision: 20592
---
 package/openssl/Makefile                        |  2 +-
 package/openssl/patches/400-cve-2010-0740.patch | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)
 create mode 100644 package/openssl/patches/400-cve-2010-0740.patch

diff --git a/package/openssl/Makefile b/package/openssl/Makefile
index e7a74905fd..9f80a98f39 100644
--- a/package/openssl/Makefile
+++ b/package/openssl/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openssl
 PKG_VERSION:=0.9.8m
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.openssl.org/source/ \
diff --git a/package/openssl/patches/400-cve-2010-0740.patch b/package/openssl/patches/400-cve-2010-0740.patch
new file mode 100644
index 0000000000..4c893eb38d
--- /dev/null
+++ b/package/openssl/patches/400-cve-2010-0740.patch
@@ -0,0 +1,15 @@
+--- a/ssl/s3_pkt.c
++++ b/ssl/s3_pkt.c
+@@ -291,9 +291,9 @@ again:
+ 			if (version != s->version)
+ 				{
+ 				SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_WRONG_VERSION_NUMBER);
+-				/* Send back error using their
+-				 * version number :-) */
+-				s->version=version;
++                                if ((s->version & 0xFF00) == (version & 0xFF00))
++                                	/* Send back error using their minor version number :-) */
++					s->version = (unsigned short)version;
+ 				al=SSL_AD_PROTOCOL_VERSION;
+ 				goto f_err;
+ 				}
-- 
GitLab