crypto/ts/ts_rsp_sign.c:907: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] (⇐ [-1, 2147483647] + [0, +oo]) Size: 23 by call to `BIO_snprintf`.
Showing all 15 steps of the trace


crypto/ts/ts_rsp_sign.c:879:1: Array declaration
877.   }
878.   
879. > static ASN1_GENERALIZEDTIME
880.   *TS_RESP_set_genTime_with_precision(ASN1_GENERALIZEDTIME *asn1_time,
881.                                       long sec, long usec, unsigned precision)

crypto/ts/ts_rsp_sign.c:886:5: Assignment
884.       struct tm *tm = NULL;
885.       char genTime_str[17 + TS_MAX_CLOCK_PRECISION_DIGITS];
886.       char *p = genTime_str;
           ^
887.       char *p_end = genTime_str + sizeof(genTime_str);
888.   

crypto/ts/ts_rsp_sign.c:902:5: Assignment
900.        * fraction-of-second details".
901.        */
902.       p += BIO_snprintf(p, p_end - p,
           ^
903.                         "%04d%02d%02d%02d%02d%02d",
904.                         tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,

crypto/ts/ts_rsp_sign.c:907:9: Call
905.                         tm->tm_hour, tm->tm_min, tm->tm_sec);
906.       if (precision > 0) {
907.           BIO_snprintf(p, 2 + precision, ".%06ld", usec);
               ^
908.           p += strlen(p);
909.   

crypto/bio/b_print.c:788:1: Parameter `*buf`
  786.    * function should be renamed, but to what?)
  787.    */
  788. > int BIO_snprintf(char *buf, size_t n, const char *format, ...)
  789.   {
  790.       va_list args;

crypto/bio/b_print.c:795:11: Call
  793.       va_start(args, format);
  794.   
  795.       ret = BIO_vsnprintf(buf, n, format, args);
                   ^
  796.   
  797.       va_end(args);

crypto/bio/b_print.c:801:1: Parameter `*buf`
    799.   }
    800.   
    801. > int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args)
    802.   {
    803.       size_t retlen;

crypto/bio/b_print.c:806:5: Call
    804.       int truncated;
    805.   
    806.       _dopr(&buf, NULL, &n, &retlen, &truncated, format, args);
               ^
    807.   
    808.       if (truncated)

crypto/bio/b_print.c:168:1: Parameter `*maxlen`
      166.   #define OSSL_MAX(p,q) ((p >= q) ? p : q)
      167.   
      168. > static void
      169.   _dopr(char **sbuffer,
      170.         char **buffer,

crypto/bio/b_print.c:199:17: Call
      197.                   state = DP_S_FLAGS;
      198.               else
      199.                   doapr_outch(sbuffer, buffer, &currlen, maxlen, ch);
                             ^
      200.               ch = *format++;
      201.               break;

crypto/bio/b_print.c:700:1: <Offset trace>
698.   }
699.   
700. > static void
701.   doapr_outch(char **sbuffer,
702.               char **buffer, size_t *currlen, size_t *maxlen, int c)

crypto/bio/b_print.c:700:1: Parameter `*maxlen`
        698.   }
        699.   
        700. > static void
        701.   doapr_outch(char **sbuffer,
        702.               char **buffer, size_t *currlen, size_t *maxlen, int c)

crypto/bio/b_print.c:700:1: <Length trace>
698.   }
699.   
700. > static void
701.   doapr_outch(char **sbuffer,
702.               char **buffer, size_t *currlen, size_t *maxlen, int c)

crypto/bio/b_print.c:700:1: Parameter `**sbuffer`
        698.   }
        699.   
        700. > static void
        701.   doapr_outch(char **sbuffer,
        702.               char **buffer, size_t *currlen, size_t *maxlen, int c)

crypto/bio/b_print.c:734:13: Array access: Offset: [-1, +oo] (⇐ [-1, 2147483647] + [0, +oo]) Size: 23 by call to `BIO_snprintf` 
        732.       if (*currlen < *maxlen) {
        733.           if (*sbuffer)
        734.               (*sbuffer)[(*currlen)++] = (char)c;
                           ^
        735.           else
        736.               (*buffer)[(*currlen)++] = (char)c;
