crypto/ts/ts_resp_sign.c:971: 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_resp_sign.c:940:1: Array declaration
938.   
939.   
940. > static ASN1_GENERALIZEDTIME *
941.   TS_RESP_set_genTime_with_precision(ASN1_GENERALIZEDTIME *asn1_time, 
942.   				   long sec, long usec, unsigned precision)

crypto/ts/ts_resp_sign.c:947:2: Assignment
945.   	struct tm *tm = NULL;	
946.   	char genTime_str[17 + TS_MAX_CLOCK_PRECISION_DIGITS];
947.   	char *p = genTime_str;
        ^
948.   	char *p_end = genTime_str + sizeof(genTime_str);
949.   

crypto/ts/ts_resp_sign.c:964:2: Assignment
962.   	 * fraction-of-second details". 
963.   	 */                   
964.   	p += BIO_snprintf(p, p_end - p,
        ^
965.   			  "%04d%02d%02d%02d%02d%02d",
966.   			  tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, 

crypto/ts/ts_resp_sign.c:971:3: Call
969.   	{
970.   		/* Add fraction of seconds (leave space for dot and null). */
971.   		BIO_snprintf(p, 2 + precision, ".%ld", usec);
         ^
972.   		/* We cannot use the snprintf return value, 
973.   		   because it might have been truncated. */

crypto/bio/b_print.c:814:1: Parameter `*buf`
  812.    * to BIO_printf, and we need *some* name prefix ...
  813.    * (XXX  the function should be renamed, but to what?) */
  814. > int BIO_snprintf(char *buf, size_t n, const char *format, ...)
  815.   	{
  816.   	va_list args;

crypto/bio/b_print.c:821:8: Call
  819.   	va_start(args, format);
  820.   
  821.   	ret = BIO_vsnprintf(buf, n, format, args);
                ^
  822.   
  823.   	va_end(args);

crypto/bio/b_print.c:827:1: Parameter `*buf`
    825.   	}
    826.   
    827. > int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args)
    828.   	{
    829.   	size_t retlen;

crypto/bio/b_print.c:832:2: Call
    830.   	int truncated;
    831.   
    832.   	_dopr(&buf, NULL, &n, &retlen, &truncated, format, args);
            ^
    833.   
    834.   	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(
      170.       char **sbuffer,

crypto/bio/b_print.c:203:17: Call
      201.                   state = DP_S_FLAGS;
      202.               else
      203.                   doapr_outch(sbuffer,buffer, &currlen, maxlen, ch);
                             ^
      204.               ch = *format++;
      205.               break;

crypto/bio/b_print.c:725:1: <Offset trace>
723.   }
724.   
725. > static void
726.   doapr_outch(
727.       char **sbuffer,

crypto/bio/b_print.c:725:1: Parameter `*maxlen`
        723.   }
        724.   
        725. > static void
        726.   doapr_outch(
        727.       char **sbuffer,

crypto/bio/b_print.c:725:1: <Length trace>
723.   }
724.   
725. > static void
726.   doapr_outch(
727.       char **sbuffer,

crypto/bio/b_print.c:725:1: Parameter `**sbuffer`
        723.   }
        724.   
        725. > static void
        726.   doapr_outch(
        727.       char **sbuffer,

crypto/bio/b_print.c:758:6: Array access: Offset: [-1, +oo] (⇐ [-1, 2147483647] + [0, +oo]) Size: 23 by call to `BIO_snprintf` 
        756.       if (*currlen < *maxlen) {
        757.   	if (*sbuffer)
        758.   	    (*sbuffer)[(*currlen)++] = (char)c;
                    ^
        759.   	else
        760.   	    (*buffer)[(*currlen)++] = (char)c;
