crypto/ts/ts_rsp_sign.c:915: 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:887:1: Array declaration
885.   }
886.   
887. > static ASN1_GENERALIZEDTIME
888.   *TS_RESP_set_genTime_with_precision(ASN1_GENERALIZEDTIME *asn1_time,
889.                                       long sec, long usec, unsigned precision)

crypto/ts/ts_rsp_sign.c:894:5: Assignment
892.       struct tm *tm = NULL;
893.       char genTime_str[17 + TS_MAX_CLOCK_PRECISION_DIGITS];
894.       char *p = genTime_str;
           ^
895.       char *p_end = genTime_str + sizeof(genTime_str);
896.   

crypto/ts/ts_rsp_sign.c:910:5: Assignment
908.        * fraction-of-second details".
909.        */
910.       p += BIO_snprintf(p, p_end - p,
           ^
911.                         "%04d%02d%02d%02d%02d%02d",
912.                         tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,

crypto/ts/ts_rsp_sign.c:915:9: Call
913.                         tm->tm_hour, tm->tm_min, tm->tm_sec);
914.       if (precision > 0) {
915.           BIO_snprintf(p, 2 + precision, ".%06ld", usec);
               ^
916.           p += strlen(p);
917.   

crypto/bio/b_print.c:829:1: Parameter `*buf`
  827.    * function should be renamed, but to what?)
  828.    */
  829. > int BIO_snprintf(char *buf, size_t n, const char *format, ...)
  830.   {
  831.       va_list args;

crypto/bio/b_print.c:836:11: Call
  834.       va_start(args, format);
  835.   
  836.       ret = BIO_vsnprintf(buf, n, format, args);
                   ^
  837.   
  838.       va_end(args);

crypto/bio/b_print.c:842:1: Parameter `*buf`
    840.   }
    841.   
    842. > int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args)
    843.   {
    844.       size_t retlen;

crypto/bio/b_print.c:847:9: Call
    845.       int truncated;
    846.   
    847.       if(!_dopr(&buf, NULL, &n, &retlen, &truncated, format, args))
                   ^
    848.           return -1;
    849.   

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

crypto/bio/b_print.c:198:21: Call
      196.                   state = DP_S_FLAGS;
      197.               else
      198.                   if(!doapr_outch(sbuffer, buffer, &currlen, maxlen, ch))
                                 ^
      199.                       return 0;
      200.               ch = *format++;

crypto/bio/b_print.c:738:1: <Offset trace>
736.   #define BUFFER_INC  1024
737.   
738. > static int
739.   doapr_outch(char **sbuffer,
740.               char **buffer, size_t *currlen, size_t *maxlen, int c)

crypto/bio/b_print.c:738:1: Parameter `*maxlen`
        736.   #define BUFFER_INC  1024
        737.   
        738. > static int
        739.   doapr_outch(char **sbuffer,
        740.               char **buffer, size_t *currlen, size_t *maxlen, int c)

crypto/bio/b_print.c:738:1: <Length trace>
736.   #define BUFFER_INC  1024
737.   
738. > static int
739.   doapr_outch(char **sbuffer,
740.               char **buffer, size_t *currlen, size_t *maxlen, int c)

crypto/bio/b_print.c:738:1: Parameter `**sbuffer`
        736.   #define BUFFER_INC  1024
        737.   
        738. > static int
        739.   doapr_outch(char **sbuffer,
        740.               char **buffer, size_t *currlen, size_t *maxlen, int c)

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