test/asn1_time_test.c:164: error: BUFFER_OVERRUN_L3
  Offset: [1, +oo] Size: [0, +oo] by call to `ASN1_TIME_cmp_time_t`.
Showing all 15 steps of the trace


test/asn1_time_test.c:158:13: Call
156.       }
157.   
158.       ptime = ASN1_TIME_set(NULL, td->t);
                   ^
159.       if (!TEST_ptr(ptime)) {
160.           TEST_info("ASN1_TIME_set(%ld) failed", (long)td->t);

crypto/asn1/a_time.c:313:1: Parameter `*s->data`
  311.   }
  312.   
  313. > ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t)
  314.   {
  315.       return ASN1_TIME_adj(s, t, 0, 0);

crypto/asn1/a_time.c:315:12: Call
  313.   ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t)
  314.   {
  315.       return ASN1_TIME_adj(s, t, 0, 0);
                    ^
  316.   }
  317.   

crypto/asn1/a_time.c:318:1: Parameter `*s->data`
    316.   }
    317.   
    318. > ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t,
    319.                            int offset_day, long offset_sec)
    320.   {

test/asn1_time_test.c:164:14: Call
162.       } else {
163.           int local_error = 0;
164.           if (!TEST_int_eq(ASN1_TIME_cmp_time_t(ptime, td->t), 0)) {
                    ^
165.               TEST_info("ASN1_TIME_set(%ld) compare failed (%s->%s)",
166.                       (long)td->t, td->data, ptime->data);

crypto/asn1/a_time.c:511:1: Parameter `*s->data`
  509.   }
  510.   
  511. > int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t)
  512.   {
  513.       struct tm stm, ttm;

crypto/asn1/a_time.c:516:10: Call
  514.       int day, sec;
  515.   
  516.       if (!ASN1_TIME_to_tm(s, &stm))
                  ^
  517.           return -2;
  518.   

crypto/asn1/a_time.c:433:1: Parameter `*s->data`
    431.   }
    432.   
    433. > int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm)
    434.   {
    435.       if (s == NULL) {

crypto/asn1/a_time.c:445:12: Call
    443.       }
    444.   
    445.       return asn1_time_to_tm(tm, s);
                      ^
    446.   }
    447.   

crypto/asn1/a_time.c:80:5: <Offset trace>
78.       static const int mdays[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
79.       char *a;
80.       int n, i, i2, l, o, min_l = 11, strict = 0, end = 6, btz = 5, md;
          ^
81.       struct tm tmp;
82.   

crypto/asn1/a_time.c:80:5: Assignment
      78.       static const int mdays[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
      79.       char *a;
      80.       int n, i, i2, l, o, min_l = 11, strict = 0, end = 6, btz = 5, md;
                ^
      81.       struct tm tmp;
      82.   

crypto/asn1/a_time.c:74:1: <Length trace>
72.   }
73.   
74. > int asn1_time_to_tm(struct tm *tm, const ASN1_TIME *d)
75.   {
76.       static const int min[9] = { 0, 0, 1, 1, 0, 0, 0, 0, 0 };

crypto/asn1/a_time.c:74:1: Parameter `*d->data`
      72.   }
      73.   
      74. > int asn1_time_to_tm(struct tm *tm, const ASN1_TIME *d)
      75.   {
      76.       static const int min[9] = { 0, 0, 1, 1, 0, 0, 0, 0, 0 };

crypto/asn1/a_time.c:110:5: Assignment
      108.   
      109.       l = d->length;
      110.       a = (char *)d->data;
                 ^
      111.       o = 0;
      112.       memset(&tmp, 0, sizeof(tmp));

crypto/asn1/a_time.c:134:14: Array access: Offset: [1, +oo] Size: [0, +oo] by call to `ASN1_TIME_cmp_time_t` 
      132.               goto err;
      133.   
      134.           if (!ossl_isdigit(a[o]))
                          ^
      135.               goto err;
      136.           n = (n * 10) + a[o] - '0';
