[ruby-cvs:62412] rhe:r55249 (trunk): openssl: fix the Year 2038 problem

rhe at ruby-lang.org rhe at ruby-lang.org
Wed Jun 1 21:41:16 JST 2016


rhe	2016-06-01 21:41:15 +0900 (Wed, 01 Jun 2016)

  New Revision: 55249

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=55249

  Log:
    openssl: fix the Year 2038 problem
    
    r55219 didn't fix the entire issue. It only fixed the issue on
    environment with sizeof(time_t) == 8 && sizeof(long) == 4.
    
    * ext/openssl/extconf.rb: Check existence of ASN1_TIME_adj(). The old
      ASN1_TIME_set() is not Year 2038 ready on sizeof(time_t) == 4
      environment. This function was added in OpenSSL 1.0.0.
      [ruby-core:45552] [Bug #6571]
    
    * ext/openssl/ossl_asn1.c (ossl_time_split): Added. Split the argument
      (Time) into the number of days elapsed since the epoch and the
      remainder seconds to conform to ASN1_TIME_adj().
      (obj_to_asn1utime, obj_to_asn1gtime): Use ossl_time_split() and
      ASN1_*TIME_adj().
    
    * ext/openssl/ossl_asn1.h: Add the function prototype for
      ossl_time_split().
    
    * ext/openssl/ossl_x509.[ch]: Add ossl_x509_time_adjust(). Similarly to
      obj_to_asn1*time(), use X509_time_adj_ex() instead of X509_time_adj().
    
    * ext/openssl/ossl_x509cert.c, ext/openssl/ossl_x509crl.c,
      ext/openssl/ossl_x509revoked.c: Use ossl_x509_time_adjust().

  Modified files:
    trunk/ChangeLog
    trunk/ext/openssl/extconf.rb
    trunk/ext/openssl/ossl_asn1.c
    trunk/ext/openssl/ossl_asn1.h
    trunk/ext/openssl/ossl_x509.c
    trunk/ext/openssl/ossl_x509.h
    trunk/ext/openssl/ossl_x509cert.c
    trunk/ext/openssl/ossl_x509crl.c
    trunk/ext/openssl/ossl_x509revoked.c


More information about the ruby-cvs mailing list