OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /v/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src                      Date:   28-Sep-2006 14:47:56
  Branch: OPENPKG_2_5_SOLID                Handle: 2006092813475600

  Modified files:           (Branch: OPENPKG_2_5_SOLID)
    openpkg-src/openssl     openssl.patch openssl.spec

  Log:
    Security Fixes (CVE-2006-2937 CVE-2006-2940 CVE-2006-3738
    CVE-2006-4343)

  Summary:
    Revision    Changes     Path
    1.22.2.2    +409 -0     openpkg-src/openssl/openssl.patch
    1.70.2.4    +1  -1      openpkg-src/openssl/openssl.spec
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/openssl/openssl.patch
  ============================================================================
  $ cvs diff -u -r1.22.2.1 -r1.22.2.2 openssl.patch
  --- openpkg-src/openssl/openssl.patch 6 Sep 2006 07:20:48 -0000       1.22.2.1
  +++ openpkg-src/openssl/openssl.patch 28 Sep 2006 12:47:56 -0000      1.22.2.2
  @@ -96,3 +96,412 @@
                sigtype=OBJ_obj2nid(sig->algor->algorithm);
    
    
  +-----------------------------------------------------------------------------
  +
  +Security Fixes (OpenPKG-SA-2006.018-openssl)
  +CVE-2006-2937 CVE-2006-2940 CVE-2006-3738 CVE-2006-4343
  +http://www.openssl.org/news/secadv_20060928.txt
  +
  +Index: crypto/asn1/tasn_dec.c
  +--- crypto/asn1/tasn_dec.c   31 Aug 2006 20:11:09 -0000      1.26.2.4
  ++++ crypto/asn1/tasn_dec.c   26 Sep 2006 11:49:24 -0000
  +@@ -832,6 +832,7 @@ static int asn1_d2i_ex_primitive(ASN1_VA
  +             }
  +     else if (ret == -1)
  +             return -1;
  ++        ret = 0;
  +     /* SEQUENCE, SET and "OTHER" are left in encoded form */
  +     if ((utype == V_ASN1_SEQUENCE)
  +             || (utype == V_ASN1_SET) || (utype == V_ASN1_OTHER))
  +Index: crypto/dh/dh.h
  +--- crypto/dh/dh.h   9 Jan 2006 16:05:22 -0000       1.37.2.2
  ++++ crypto/dh/dh.h   26 Sep 2006 11:49:24 -0000
  +@@ -73,6 +73,10 @@
  + #include <openssl/bn.h>
  + #endif
  +     
  ++#ifndef OPENSSL_DH_MAX_MODULUS_BITS
  ++# define OPENSSL_DH_MAX_MODULUS_BITS        10000
  ++#endif
  ++
  + #define DH_FLAG_CACHE_MONT_P     0x01
  + #define DH_FLAG_NO_EXP_CONSTTIME 0x02 /* new with 0.9.7h; the built-in DH
  +                                        * implementation now uses constant 
time
  +@@ -221,6 +225,7 @@ void ERR_load_DH_strings(void);
  + /* Reason codes. */
  + #define DH_R_BAD_GENERATOR                           101
  + #define DH_R_NO_PRIVATE_VALUE                                100
  ++#define DH_R_MODULUS_TOO_LARGE                               103
  + #define DH_R_INVALID_PUBKEY                          102
  + 
  + #ifdef  __cplusplus
  +Index: crypto/dh/dh_err.c
  +--- crypto/dh/dh_err.c       9 Jan 2006 16:05:22 -0000       1.11.2.2
  ++++ crypto/dh/dh_err.c       26 Sep 2006 11:49:24 -0000
  +@@ -84,6 +84,7 @@ static ERR_STRING_DATA DH_str_reasons[]=
  +     {
  + {ERR_REASON(DH_R_BAD_GENERATOR)          ,"bad generator"},
  + {ERR_REASON(DH_R_NO_PRIVATE_VALUE)       ,"no private value"},
  ++{ERR_REASON(DH_R_MODULUS_TOO_LARGE)      ,"modulus too large"},
  + {ERR_REASON(DH_R_INVALID_PUBKEY)         ,"invalid public key"},
  + {0,NULL}
  +     };
  +Index: crypto/dh/dh_key.c
  +--- crypto/dh/dh_key.c       13 Mar 2006 23:12:06 -0000      1.24.2.3
  ++++ crypto/dh/dh_key.c       26 Sep 2006 11:49:24 -0000
  +@@ -179,6 +179,12 @@ static int compute_key(unsigned char *ke
  +     int ret= -1;
  +         int check_result;
  + 
  ++    if (BN_num_bits(dh->p) > OPENSSL_DH_MAX_MODULUS_BITS)
  ++            {
  ++            DHerr(DH_F_COMPUTE_KEY,DH_R_MODULUS_TOO_LARGE);
  ++            goto err;
  ++            }
  ++
  +     ctx = BN_CTX_new();
  +     if (ctx == NULL) goto err;
  +     BN_CTX_start(ctx);
  +Index: crypto/dsa/dsa.h
  +--- crypto/dsa/dsa.h 16 May 2005 01:43:30 -0000      1.39
  ++++ crypto/dsa/dsa.h 26 Sep 2006 11:49:24 -0000
  +@@ -84,6 +84,10 @@
  + #endif
  + #endif
  + 
  ++#ifndef OPENSSL_DSA_MAX_MODULUS_BITS
  ++# define OPENSSL_DSA_MAX_MODULUS_BITS       10000
  ++#endif
  ++
  + #define DSA_FLAG_CACHE_MONT_P       0x01
  + #define DSA_FLAG_NO_EXP_CONSTTIME       0x02 /* new with 0.9.7h; the 
built-in DSA
  +                                               * implementation now uses 
constant time
  +@@ -270,8 +274,10 @@ void ERR_load_DSA_strings(void);
  + #define DSA_F_SIG_CB                                         114
  + 
  + /* Reason codes. */
  ++#define DSA_R_BAD_Q_VALUE                            102
  + #define DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE            100
  + #define DSA_R_MISSING_PARAMETERS                     101
  ++#define DSA_R_MODULUS_TOO_LARGE                              103
  + 
  + #ifdef  __cplusplus
  + }
  +Index: crypto/dsa/dsa_err.c
  +--- crypto/dsa/dsa_err.c     12 Apr 2005 16:15:12 -0000      1.13
  ++++ crypto/dsa/dsa_err.c     26 Sep 2006 11:49:24 -0000
  +@@ -89,8 +89,10 @@ static ERR_STRING_DATA DSA_str_functs[]=
  + 
  + static ERR_STRING_DATA DSA_str_reasons[]=
  +     {
  ++{ERR_REASON(DSA_R_BAD_Q_VALUE)           ,"bad q value"},
  + {ERR_REASON(DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE),"data too large for key 
size"},
  + {ERR_REASON(DSA_R_MISSING_PARAMETERS)    ,"missing parameters"},
  ++{ERR_REASON(DSA_R_MODULUS_TOO_LARGE)     ,"modulus too large"},
  + {0,NULL}
  +     };
  + 
  +Index: crypto/dsa/dsa_ossl.c
  +--- crypto/dsa/dsa_ossl.c    26 May 2005 04:40:57 -0000      1.24.2.1
  ++++ crypto/dsa/dsa_ossl.c    26 Sep 2006 11:49:24 -0000
  +@@ -304,6 +304,18 @@ static int dsa_do_verify(const unsigned 
  +             return -1;
  +             }
  + 
  ++    if (BN_num_bits(dsa->q) != 160)
  ++            {
  ++            DSAerr(DSA_F_DSA_DO_VERIFY,DSA_R_BAD_Q_VALUE);
  ++            return -1;
  ++            }
  ++
  ++    if (BN_num_bits(dsa->p) > OPENSSL_DSA_MAX_MODULUS_BITS)
  ++            {
  ++            DSAerr(DSA_F_DSA_DO_VERIFY,DSA_R_MODULUS_TOO_LARGE);
  ++            return -1;
  ++            }
  ++
  +     BN_init(&u1);
  +     BN_init(&u2);
  +     BN_init(&t1);
  +Index: crypto/ec/ec.h
  +--- crypto/ec/ec.h   8 Jan 2006 21:52:43 -0000       1.77.2.2
  ++++ crypto/ec/ec.h   26 Sep 2006 11:49:24 -0000
  +@@ -93,6 +93,10 @@ extern "C" {
  + #endif
  + 
  + 
  ++#ifndef OPENSSL_ECC_MAX_FIELD_BITS
  ++# define OPENSSL_ECC_MAX_FIELD_BITS 661
  ++#endif
  ++
  + typedef enum {
  +     /* values as defined in X9.62 (ECDSA) and elsewhere */
  +     POINT_CONVERSION_COMPRESSED = 2,
  +@@ -482,6 +486,7 @@ void ERR_load_EC_strings(void);
  + #define EC_R_D2I_ECPKPARAMETERS_FAILURE                      117
  + #define EC_R_DISCRIMINANT_IS_ZERO                    118
  + #define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE            119
  ++#define EC_R_FIELD_TOO_LARGE                                 138
  + #define EC_R_GROUP2PKPARAMETERS_FAILURE                      120
  + #define EC_R_I2D_ECPKPARAMETERS_FAILURE                      121
  + #define EC_R_INCOMPATIBLE_OBJECTS                    101
  +@@ -492,7 +497,9 @@ void ERR_load_EC_strings(void);
  + #define EC_R_INVALID_FIELD                           103
  + #define EC_R_INVALID_FORM                            104
  + #define EC_R_INVALID_GROUP_ORDER                     122
  ++#define EC_R_INVALID_PENTANOMIAL_BASIS                       132
  + #define EC_R_INVALID_PRIVATE_KEY                     123
  ++#define EC_R_INVALID_TRINOMIAL_BASIS                         137
  + #define EC_R_MISSING_PARAMETERS                              124
  + #define EC_R_MISSING_PRIVATE_KEY                     125
  + #define EC_R_NOT_A_NIST_PRIME                                135
  +Index: crypto/ec/ec_asn1.c
  +--- crypto/ec/ec_asn1.c      8 Feb 2006 19:16:13 -0000       1.19.2.1
  ++++ crypto/ec/ec_asn1.c      26 Sep 2006 11:49:25 -0000
  +@@ -741,6 +741,7 @@ static EC_GROUP *ec_asn1_parameters2grou
  +     EC_GROUP                *ret = NULL;
  +     BIGNUM                  *p = NULL, *a = NULL, *b = NULL;
  +     EC_POINT                *point=NULL;
  ++    long                    field_bits;
  + 
  +     if (!params->fieldID || !params->fieldID->fieldType || 
  +         !params->fieldID->p.ptr)
  +@@ -779,6 +780,13 @@ static EC_GROUP *ec_asn1_parameters2grou
  + 
  +             char_two = params->fieldID->p.char_two;
  + 
  ++            field_bits = char_two->m;
  ++            if (field_bits > OPENSSL_ECC_MAX_FIELD_BITS)
  ++                    {
  ++                    ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, 
EC_R_FIELD_TOO_LARGE);
  ++                    goto err;
  ++                    }
  ++
  +             if ((p = BN_new()) == NULL)
  +                     {
  +                     ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, 
ERR_R_MALLOC_FAILURE);
  +@@ -799,6 +807,13 @@ static EC_GROUP *ec_asn1_parameters2grou
  +                             }
  + 
  +                     tmp_long = ASN1_INTEGER_get(char_two->p.tpBasis);
  ++
  ++                    if (!(char_two->m > tmp_long && tmp_long > 0))
  ++                            {
  ++                            ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, 
EC_R_INVALID_TRINOMIAL_BASIS);
  ++                            goto err;
  ++                            }
  ++                    
  +                     /* create the polynomial */
  +                     if (!BN_set_bit(p, (int)char_two->m))
  +                             goto err;
  +@@ -817,6 +832,13 @@ static EC_GROUP *ec_asn1_parameters2grou
  +                             ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, 
EC_R_ASN1_ERROR);
  +                             goto err;
  +                             }
  ++
  ++                    if (!(char_two->m > penta->k3 && penta->k3 > penta->k2 
&& penta->k2 > penta->k1 && penta->k1 > 0))
  ++                            {
  ++                            ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, 
EC_R_INVALID_PENTANOMIAL_BASIS);
  ++                            goto err;
  ++                            }
  ++                    
  +                     /* create the polynomial */
  +                     if (!BN_set_bit(p, (int)char_two->m)) goto err;
  +                     if (!BN_set_bit(p, (int)penta->k1)) goto err;
  +@@ -853,6 +875,20 @@ static EC_GROUP *ec_asn1_parameters2grou
  +                     ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, ERR_R_ASN1_LIB);
  +                     goto err;
  +                     }
  ++
  ++            if (BN_is_negative(p) || BN_is_zero(p))
  ++                    {
  ++                    ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, 
EC_R_INVALID_FIELD);
  ++                    goto err;
  ++                    }
  ++
  ++            field_bits = BN_num_bits(p);
  ++            if (field_bits > OPENSSL_ECC_MAX_FIELD_BITS)
  ++                    {
  ++                    ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, 
EC_R_FIELD_TOO_LARGE);
  ++                    goto err;
  ++                    }
  ++
  +             /* create the EC_GROUP structure */
  +             ret = EC_GROUP_new_curve_GFp(p, a, b, NULL);
  +             }
  +@@ -910,6 +946,16 @@ static EC_GROUP *ec_asn1_parameters2grou
  +             ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, ERR_R_ASN1_LIB);
  +             goto err;
  +             }
  ++    if (BN_is_negative(a) || BN_is_zero(a))
  ++            {
  ++            ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, EC_R_INVALID_GROUP_ORDER);
  ++            goto err;
  ++            }
  ++    if (BN_num_bits(a) > (int)field_bits + 1) /* Hasse bound */
  ++            {
  ++            ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, EC_R_INVALID_GROUP_ORDER);
  ++            goto err;
  ++            }
  +     
  +     /* extract the cofactor (optional) */
  +     if (params->cofactor == NULL)
  +Index: crypto/ec/ec_err.c
  +--- crypto/ec/ec_err.c       9 Jan 2006 16:05:20 -0000       1.36.2.2
  ++++ crypto/ec/ec_err.c       26 Sep 2006 11:49:25 -0000
  +@@ -188,6 +188,7 @@ static ERR_STRING_DATA EC_str_reasons[]=
  + {ERR_REASON(EC_R_D2I_ECPKPARAMETERS_FAILURE),"d2i ecpkparameters failure"},
  + {ERR_REASON(EC_R_DISCRIMINANT_IS_ZERO)   ,"discriminant is zero"},
  + {ERR_REASON(EC_R_EC_GROUP_NEW_BY_NAME_FAILURE),"ec group new by name 
failure"},
  ++{ERR_REASON(EC_R_FIELD_TOO_LARGE)        ,"field too large"},
  + {ERR_REASON(EC_R_GROUP2PKPARAMETERS_FAILURE),"group2pkparameters failure"},
  + {ERR_REASON(EC_R_I2D_ECPKPARAMETERS_FAILURE),"i2d ecpkparameters failure"},
  + {ERR_REASON(EC_R_INCOMPATIBLE_OBJECTS)   ,"incompatible objects"},
  +@@ -198,7 +199,9 @@ static ERR_STRING_DATA EC_str_reasons[]=
  + {ERR_REASON(EC_R_INVALID_FIELD)          ,"invalid field"},
  + {ERR_REASON(EC_R_INVALID_FORM)           ,"invalid form"},
  + {ERR_REASON(EC_R_INVALID_GROUP_ORDER)    ,"invalid group order"},
  ++{ERR_REASON(EC_R_INVALID_PENTANOMIAL_BASIS),"invalid pentanomial basis"},
  + {ERR_REASON(EC_R_INVALID_PRIVATE_KEY)    ,"invalid private key"},
  ++{ERR_REASON(EC_R_INVALID_TRINOMIAL_BASIS),"invalid trinomial basis"},
  + {ERR_REASON(EC_R_MISSING_PARAMETERS)     ,"missing parameters"},
  + {ERR_REASON(EC_R_MISSING_PRIVATE_KEY)    ,"missing private key"},
  + {ERR_REASON(EC_R_NOT_A_NIST_PRIME)       ,"not a NIST prime"},
  +Index: crypto/rsa/rsa.h
  +--- crypto/rsa/rsa.h 6 Sep 2006 06:43:25 -0000       1.55.2.6
  ++++ crypto/rsa/rsa.h 26 Sep 2006 11:49:25 -0000
  +@@ -159,6 +159,17 @@ struct rsa_st
  +     BN_BLINDING *mt_blinding;
  +     };
  + 
  ++#ifndef OPENSSL_RSA_MAX_MODULUS_BITS
  ++# define OPENSSL_RSA_MAX_MODULUS_BITS       16384
  ++#endif
  ++
  ++#ifndef OPENSSL_RSA_SMALL_MODULUS_BITS
  ++# define OPENSSL_RSA_SMALL_MODULUS_BITS     3072
  ++#endif
  ++#ifndef OPENSSL_RSA_MAX_PUBEXP_BITS
  ++# define OPENSSL_RSA_MAX_PUBEXP_BITS        64 /* exponent limit enforced 
for "large" modulus only */
  ++#endif
  ++
  + #define RSA_3       0x3L
  + #define RSA_F4      0x10001L
  + 
  +@@ -407,6 +418,7 @@ void ERR_load_RSA_strings(void);
  + #define RSA_R_IQMP_NOT_INVERSE_OF_Q                  126
  + #define RSA_R_KEY_SIZE_TOO_SMALL                     120
  + #define RSA_R_LAST_OCTET_INVALID                     134
  ++#define RSA_R_MODULUS_TOO_LARGE                              105
  + #define RSA_R_NO_PUBLIC_EXPONENT                     140
  + #define RSA_R_NULL_BEFORE_BLOCK_MISSING                      113
  + #define RSA_R_N_DOES_NOT_EQUAL_P_Q                   127
  +Index: crypto/rsa/rsa_eay.c
  +--- crypto/rsa/rsa_eay.c     6 Sep 2006 06:43:25 -0000       1.46.2.6
  ++++ crypto/rsa/rsa_eay.c     26 Sep 2006 11:49:25 -0000
  +@@ -168,6 +168,28 @@ static int RSA_eay_public_encrypt(int fl
  +     unsigned char *buf=NULL;
  +     BN_CTX *ctx=NULL;
  + 
  ++    if (BN_num_bits(rsa->n) > OPENSSL_RSA_MAX_MODULUS_BITS)
  ++            {
  ++            RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT, RSA_R_MODULUS_TOO_LARGE);
  ++            return -1;
  ++            }
  ++
  ++    if (BN_ucmp(rsa->n, rsa->e) <= 0)
  ++            {
  ++            RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT, RSA_R_BAD_E_VALUE);
  ++            return -1;
  ++            }
  ++
  ++    /* for large moduli, enforce exponent limit */
  ++    if (BN_num_bits(rsa->n) > OPENSSL_RSA_SMALL_MODULUS_BITS)
  ++            {
  ++            if (BN_num_bits(rsa->e) > OPENSSL_RSA_MAX_PUBEXP_BITS)
  ++                    {
  ++                    RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT, RSA_R_BAD_E_VALUE);
  ++                    return -1;
  ++                    }
  ++            }
  ++    
  +     if ((ctx=BN_CTX_new()) == NULL) goto err;
  +     BN_CTX_start(ctx);
  +     f = BN_CTX_get(ctx);
  +@@ -597,6 +619,28 @@ static int RSA_eay_public_decrypt(int fl
  +     unsigned char *buf=NULL;
  +     BN_CTX *ctx=NULL;
  + 
  ++    if (BN_num_bits(rsa->n) > OPENSSL_RSA_MAX_MODULUS_BITS)
  ++            {
  ++            RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT, RSA_R_MODULUS_TOO_LARGE);
  ++            return -1;
  ++            }
  ++
  ++    if (BN_ucmp(rsa->n, rsa->e) <= 0)
  ++            {
  ++            RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT, RSA_R_BAD_E_VALUE);
  ++            return -1;
  ++            }
  ++
  ++    /* for large moduli, enforce exponent limit */
  ++    if (BN_num_bits(rsa->n) > OPENSSL_RSA_SMALL_MODULUS_BITS)
  ++            {
  ++            if (BN_num_bits(rsa->e) > OPENSSL_RSA_MAX_PUBEXP_BITS)
  ++                    {
  ++                    RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT, RSA_R_BAD_E_VALUE);
  ++                    return -1;
  ++                    }
  ++            }
  ++    
  +     if((ctx = BN_CTX_new()) == NULL) goto err;
  +     BN_CTX_start(ctx);
  +     f = BN_CTX_get(ctx);
  +Index: crypto/rsa/rsa_err.c
  +--- crypto/rsa/rsa_err.c     6 Sep 2006 06:43:26 -0000       1.17.2.5
  ++++ crypto/rsa/rsa_err.c     26 Sep 2006 11:49:25 -0000
  +@@ -137,6 +137,7 @@ static ERR_STRING_DATA RSA_str_reasons[]
  + {ERR_REASON(RSA_R_IQMP_NOT_INVERSE_OF_Q) ,"iqmp not inverse of q"},
  + {ERR_REASON(RSA_R_KEY_SIZE_TOO_SMALL)    ,"key size too small"},
  + {ERR_REASON(RSA_R_LAST_OCTET_INVALID)    ,"last octet invalid"},
  ++{ERR_REASON(RSA_R_MODULUS_TOO_LARGE)     ,"modulus too large"},
  + {ERR_REASON(RSA_R_NO_PUBLIC_EXPONENT)    ,"no public exponent"},
  + {ERR_REASON(RSA_R_NULL_BEFORE_BLOCK_MISSING),"null before block missing"},
  + {ERR_REASON(RSA_R_N_DOES_NOT_EQUAL_P_Q)  ,"n does not equal p q"},
  +Index: ssl/s2_clnt.c
  +--- ssl/s2_clnt.c    5 Dec 2005 17:32:20 -0000       1.51.2.2
  ++++ ssl/s2_clnt.c    26 Sep 2006 11:49:25 -0000
  +@@ -520,7 +520,8 @@ static int get_server_hello(SSL *s)
  +             CRYPTO_add(&s->session->peer->references, 1, CRYPTO_LOCK_X509);
  +             }
  + 
  +-    if (s->session->peer != s->session->sess_cert->peer_key->x509)
  ++    if (s->session->sess_cert == NULL 
  ++      || s->session->peer != s->session->sess_cert->peer_key->x509)
  +             /* can't happen */
  +             {
  +             ssl2_return_error(s, SSL2_PE_UNDEFINED_ERROR);
  +Index: ssl/s3_srvr.c
  +--- ssl/s3_srvr.c    8 Feb 2006 19:16:33 -0000       1.126.2.7
  ++++ ssl/s3_srvr.c    26 Sep 2006 11:49:25 -0000
  +@@ -2003,7 +2003,7 @@ int ssl3_get_client_key_exchange(SSL *s)
  + 
  +                 if (kssl_ctx->client_princ)
  +                         {
  +-                        int len = strlen(kssl_ctx->client_princ);
  ++                        size_t len = strlen(kssl_ctx->client_princ);
  +                         if ( len < SSL_MAX_KRB5_PRINCIPAL_LENGTH ) 
  +                                 {
  +                                 s->session->krb5_client_princ_len = len;
  +Index: ssl/ssl_lib.c
  +--- ssl/ssl_lib.c    5 Dec 2005 17:32:21 -0000       1.133.2.6
  ++++ ssl/ssl_lib.c    26 Sep 2006 11:49:26 -0000
  +@@ -1219,7 +1219,7 @@ char *SSL_get_shared_ciphers(const SSL *
  +             c=sk_SSL_CIPHER_value(sk,i);
  +             for (cp=c->name; *cp; )
  +                     {
  +-                    if (len-- == 0)
  ++                    if (len-- <= 0)
  +                             {
  +                             *p='\0';
  +                             return(buf);
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openssl/openssl.spec
  ============================================================================
  $ cvs diff -u -r1.70.2.3 -r1.70.2.4 openssl.spec
  --- openpkg-src/openssl/openssl.spec  6 Sep 2006 07:20:48 -0000       1.70.2.3
  +++ openpkg-src/openssl/openssl.spec  28 Sep 2006 12:47:56 -0000      1.70.2.4
  @@ -33,7 +33,7 @@
   Group:        Cryptography
   License:      BSD-style
   Version:      0.9.8a
  -Release:      2.5.2
  +Release:      2.5.3
   
   #   package options
   %option       with_zlib     no
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [email protected]

Reply via email to