~ubuntu-branches/ubuntu/lucid/openssl/lucid-security

« back to all changes in this revision

Viewing changes to debian/patches/CVE-2015-0293-2.patch

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2015-03-19 09:57:59 UTC
  • Revision ID: package-import@ubuntu.com-20150319095759-do88u689v2nfth1v
Tags: 0.9.8k-7ubuntu8.27
* SECURITY UPDATE: denial of service and possible memory corruption via
  malformed EC private key
  - debian/patches/CVE-2015-0209.patch: fix use after free in
    crypto/ec/ec_asn1.c.
  - debian/patches/CVE-2015-0209-2.patch: fix a failure to NULL a pointer
    freed on error in crypto/asn1/x_x509.c, crypto/ec/ec_asn1.c.
  - CVE-2015-0209
* SECURITY UPDATE: denial of service via cert verification
  - debian/patches/CVE-2015-0286.patch: handle boolean types in
    crypto/asn1/a_type.c.
  - CVE-2015-0286
* SECURITY UPDATE: ASN.1 structure reuse memory corruption
  - debian/patches/CVE-2015-0287.patch: free up structures in
    crypto/asn1/tasn_dec.c.
  - CVE-2015-0287
* SECURITY UPDATE: denial of service via invalid certificate key
  - debian/patches/CVE-2015-0288.patch: check public key isn't NULL in
    crypto/x509/x509_req.c.
  - CVE-2015-0288
* SECURITY UPDATE: denial of service and possible code execution via
  PKCS#7 parsing
  - debian/patches/CVE-2015-0289.patch: handle missing content in
    crypto/pkcs7/pk7_doit.c, crypto/pkcs7/pk7_lib.c.
  - CVE-2015-0289
* SECURITY UPDATE: denial of service or memory corruption via base64
  decoding
  - debian/patches/CVE-2015-0292.patch: prevent underflow in
    crypto/evp/encode.c.
  - CVE-2015-0292
* SECURITY UPDATE: denial of service via assert in SSLv2 servers
  - debian/patches/CVE-2015-0293.patch: check key lengths in
    ssl/s2_lib.c, ssl/s2_srvr.c.
  - debian/patches/CVE-2015-0293-2.patch: fix unsigned/signed warnings in
    ssl/s2_srvr.c.
  - CVE-2015-0293

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Backport of:
 
2
 
 
3
From b78c9e4a2b3503e06fdee6272427f142d860ed47 Mon Sep 17 00:00:00 2001
 
4
From: Matt Caswell <matt@openssl.org>
 
5
Date: Thu, 19 Mar 2015 11:35:33 +0000
 
6
Subject: [PATCH] Fix unsigned/signed warnings
 
7
 
 
8
Fix some unsigned/signed warnings introduced as part of the fix
 
9
for CVE-2015-0293
 
10
 
 
11
Reviewed-by: Tim Hudson <tjh@openssl.org>
 
12
Reviewed-by: Richard Levitte <levitte@openssl.org>
 
13
---
 
14
 ssl/s2_srvr.c | 9 +++++----
 
15
 1 file changed, 5 insertions(+), 4 deletions(-)
 
16
 
 
17
Index: openssl-0.9.8k/ssl/s2_srvr.c
 
18
===================================================================
 
19
--- openssl-0.9.8k.orig/ssl/s2_srvr.c   2015-03-19 10:50:58.769785650 -0400
 
20
+++ openssl-0.9.8k/ssl/s2_srvr.c        2015-03-19 10:52:03.778329439 -0400
 
21
@@ -363,7 +363,8 @@
 
22
 
 
23
 static int get_client_master_key(SSL *s)
 
24
        {
 
25
-       int is_export,i,n,keya,ek;
 
26
+       int is_export,i,n,keya;
 
27
+       unsigned int ek;
 
28
        unsigned long len;
 
29
        unsigned char *p;
 
30
        SSL_CIPHER *cp;
 
31
@@ -481,7 +482,7 @@
 
32
         * must be zero).
 
33
         */
 
34
        if ((!is_export && s->s2->tmp.clear != 0) ||
 
35
-               (is_export && s->s2->tmp.clear + ek != EVP_CIPHER_key_length(c))) {
 
36
+               (is_export && s->s2->tmp.clear + ek != (unsigned int)EVP_CIPHER_key_length(c))) {
 
37
                ssl2_return_error(s, SSL2_PE_UNDEFINED_ERROR);
 
38
                SSLerr(SSL_F_GET_CLIENT_MASTER_KEY,SSL_R_BAD_LENGTH);
 
39
                return -1;
 
40
@@ -492,7 +493,7 @@
 
41
         * bytes to fit the key in the buffer, stop now.
 
42
         */
 
43
        if ((is_export && s->s2->tmp.enc < ek) ||
 
44
-               (!is_export && s->s2->tmp.enc < EVP_CIPHER_key_length(c))) {
 
45
+               (!is_export && s->s2->tmp.enc < (unsigned int)EVP_CIPHER_key_length(c))) {
 
46
                ssl2_return_error(s,SSL2_PE_UNDEFINED_ERROR);
 
47
                SSLerr(SSL_F_GET_CLIENT_MASTER_KEY,SSL_R_LENGTH_TOO_SHORT);
 
48
                return -1;
 
49
@@ -509,7 +510,7 @@
 
50
        /* If a bad decrypt, continue with protocol but with a
 
51
         * random master secret (Bleichenbacher attack) */
 
52
        if ((i < 0) || ((!is_export && i != EVP_CIPHER_key_length(c))
 
53
-                       || (is_export && i != ek)))
 
54
+                       || (is_export && i != (int)ek)))
 
55
                {
 
56
                ERR_clear_error();
 
57
                if (is_export)