apps/s_server.c:2976: error: BUFFER_OVERRUN_L3
  Offset: [-529, +oo] Size: 12 by call to `X509_print`.
Showing all 40 steps of the trace


apps/s_server.c:2971:13: Call
2969.               SSL_SESSION_print(io, SSL_get_session(con));
2970.               BIO_printf(io, "---\n");
2971.               print_stats(io, SSL_get_SSL_CTX(con));
                    ^
2972.               BIO_printf(io, "---\n");
2973.               peer = SSL_get_peer_certificate(con);

apps/s_server.c:2117:16: Call
  2115.   {
  2116.       BIO_printf(bio, "%4ld items in the session cache\n",
  2117.                  SSL_CTX_sess_number(ssl_ctx));
                         ^
  2118.       BIO_printf(bio, "%4ld client connects (SSL_connect())\n",
  2119.                  SSL_CTX_sess_connect(ssl_ctx));

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2119:16: Call
  2117.                  SSL_CTX_sess_number(ssl_ctx));
  2118.       BIO_printf(bio, "%4ld client connects (SSL_connect())\n",
  2119.                  SSL_CTX_sess_connect(ssl_ctx));
                         ^
  2120.       BIO_printf(bio, "%4ld client renegotiates (SSL_connect())\n",
  2121.                  SSL_CTX_sess_connect_renegotiate(ssl_ctx));

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2121:16: Call
  2119.                  SSL_CTX_sess_connect(ssl_ctx));
  2120.       BIO_printf(bio, "%4ld client renegotiates (SSL_connect())\n",
  2121.                  SSL_CTX_sess_connect_renegotiate(ssl_ctx));
                         ^
  2122.       BIO_printf(bio, "%4ld client connects that finished\n",
  2123.                  SSL_CTX_sess_connect_good(ssl_ctx));

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2123:16: Call
  2121.                  SSL_CTX_sess_connect_renegotiate(ssl_ctx));
  2122.       BIO_printf(bio, "%4ld client connects that finished\n",
  2123.                  SSL_CTX_sess_connect_good(ssl_ctx));
                         ^
  2124.       BIO_printf(bio, "%4ld server accepts (SSL_accept())\n",
  2125.                  SSL_CTX_sess_accept(ssl_ctx));

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2125:16: Call
  2123.                  SSL_CTX_sess_connect_good(ssl_ctx));
  2124.       BIO_printf(bio, "%4ld server accepts (SSL_accept())\n",
  2125.                  SSL_CTX_sess_accept(ssl_ctx));
                         ^
  2126.       BIO_printf(bio, "%4ld server renegotiates (SSL_accept())\n",
  2127.                  SSL_CTX_sess_accept_renegotiate(ssl_ctx));

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2127:16: Call
  2125.                  SSL_CTX_sess_accept(ssl_ctx));
  2126.       BIO_printf(bio, "%4ld server renegotiates (SSL_accept())\n",
  2127.                  SSL_CTX_sess_accept_renegotiate(ssl_ctx));
                         ^
  2128.       BIO_printf(bio, "%4ld server accepts that finished\n",
  2129.                  SSL_CTX_sess_accept_good(ssl_ctx));

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2129:16: Call
  2127.                  SSL_CTX_sess_accept_renegotiate(ssl_ctx));
  2128.       BIO_printf(bio, "%4ld server accepts that finished\n",
  2129.                  SSL_CTX_sess_accept_good(ssl_ctx));
                         ^
  2130.       BIO_printf(bio, "%4ld session cache hits\n", SSL_CTX_sess_hits(ssl_ctx));
  2131.       BIO_printf(bio, "%4ld session cache misses\n",

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2130:50: Call
  2128.       BIO_printf(bio, "%4ld server accepts that finished\n",
  2129.                  SSL_CTX_sess_accept_good(ssl_ctx));
  2130.       BIO_printf(bio, "%4ld session cache hits\n", SSL_CTX_sess_hits(ssl_ctx));
                                                           ^
  2131.       BIO_printf(bio, "%4ld session cache misses\n",
  2132.                  SSL_CTX_sess_misses(ssl_ctx));

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2132:16: Call
  2130.       BIO_printf(bio, "%4ld session cache hits\n", SSL_CTX_sess_hits(ssl_ctx));
  2131.       BIO_printf(bio, "%4ld session cache misses\n",
  2132.                  SSL_CTX_sess_misses(ssl_ctx));
                         ^
  2133.       BIO_printf(bio, "%4ld session cache timeouts\n",
  2134.                  SSL_CTX_sess_timeouts(ssl_ctx));

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2134:16: Call
  2132.                  SSL_CTX_sess_misses(ssl_ctx));
  2133.       BIO_printf(bio, "%4ld session cache timeouts\n",
  2134.                  SSL_CTX_sess_timeouts(ssl_ctx));
                         ^
  2135.       BIO_printf(bio, "%4ld callback cache hits\n",
  2136.                  SSL_CTX_sess_cb_hits(ssl_ctx));

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2136:16: Call
  2134.                  SSL_CTX_sess_timeouts(ssl_ctx));
  2135.       BIO_printf(bio, "%4ld callback cache hits\n",
  2136.                  SSL_CTX_sess_cb_hits(ssl_ctx));
                         ^
  2137.       BIO_printf(bio, "%4ld cache full overflows (%ld allowed)\n",
  2138.                  SSL_CTX_sess_cache_full(ssl_ctx),

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2138:16: Call
  2136.                  SSL_CTX_sess_cb_hits(ssl_ctx));
  2137.       BIO_printf(bio, "%4ld cache full overflows (%ld allowed)\n",
  2138.                  SSL_CTX_sess_cache_full(ssl_ctx),
                         ^
  2139.                  SSL_CTX_sess_get_cache_size(ssl_ctx));
  2140.   }

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2139:16: Call
  2137.       BIO_printf(bio, "%4ld cache full overflows (%ld allowed)\n",
  2138.                  SSL_CTX_sess_cache_full(ssl_ctx),
  2139.                  SSL_CTX_sess_get_cache_size(ssl_ctx));
                         ^
  2140.   }
  2141.   

ssl/ssl_lib.c:1164:1: Parameter `*parg`
    1162.   }
    1163.   
    1164. > long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
    1165.   {
    1166.       long l;

apps/s_server.c:2976:17: Call
2974.               if (peer != NULL) {
2975.                   BIO_printf(io, "Client certificate\n");
2976.                   X509_print(io, peer);
                        ^
2977.                   PEM_write_bio_X509(io, peer);
2978.               } else

crypto/asn1/t_x509.c:100:1: Parameter `*x->cert_info->validity->notAfter->data`
  98.   #endif
  99.   
  100. > int X509_print(BIO *bp, X509 *x)
  101.   {
  102.       return X509_print_ex(bp, x, XN_FLAG_COMPAT, X509_FLAG_COMPAT);

crypto/asn1/t_x509.c:102:12: Call
  100.   int X509_print(BIO *bp, X509 *x)
  101.   {
  102.       return X509_print_ex(bp, x, XN_FLAG_COMPAT, X509_FLAG_COMPAT);
                    ^
  103.   }
  104.   

crypto/asn1/t_x509.c:105:1: Parameter `*x->cert_info->validity->notAfter->data`
    103.   }
    104.   
    105. > int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags,
    106.                     unsigned long cflag)
    107.   {

crypto/asn1/t_x509.c:197:14: Call
    195.           if (BIO_write(bp, "\n            Not After : ", 25) <= 0)
    196.               goto err;
    197.           if (!ASN1_TIME_print(bp, X509_get_notAfter(x)))
                        ^
    198.               goto err;
    199.           if (BIO_write(bp, "\n", 1) <= 0)

crypto/asn1/t_x509.c:392:1: Parameter `*tm->data`
      390.   }
      391.   
      392. > int ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm)
      393.   {
      394.       if (tm->type == V_ASN1_UTCTIME)

crypto/asn1/t_x509.c:397:16: Call
      395.           return ASN1_UTCTIME_print(bp, tm);
      396.       if (tm->type == V_ASN1_GENERALIZEDTIME)
      397.           return ASN1_GENERALIZEDTIME_print(bp, tm);
                            ^
      398.       BIO_write(bp, "Bad time value", 14);
      399.       return (0);

crypto/asn1/t_x509.c:407:1: <Offset trace>
405.   };
406.   
407. > int ASN1_GENERALIZEDTIME_print(BIO *bp, const ASN1_GENERALIZEDTIME *tm)
408.   {
409.       char *v;

crypto/asn1/t_x509.c:407:1: Parameter `*tm->data`
        405.   };
        406.   
        407. > int ASN1_GENERALIZEDTIME_print(BIO *bp, const ASN1_GENERALIZEDTIME *tm)
        408.   {
        409.       char *v;

crypto/asn1/t_x509.c:428:5: Assignment
        426.       y = (v[0] - '0') * 1000 + (v[1] - '0') * 100
        427.           + (v[2] - '0') * 10 + (v[3] - '0');
        428.       M = (v[4] - '0') * 10 + (v[5] - '0');
                   ^
        429.       if ((M > 12) || (M < 1))
        430.           goto err;

crypto/asn1/t_x509.c:402:1: <Length trace>
400.   }
401.   
402. > static const char *mon[12] = {
403.       "Jan", "Feb", "Mar", "Apr", "May", "Jun",
404.       "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"

crypto/asn1/t_x509.c:402:1: Array declaration
        400.   }
        401.   
        402. > static const char *mon[12] = {
        403.       "Jan", "Feb", "Mar", "Apr", "May", "Jun",
        404.       "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"

crypto/asn1/t_x509.c:449:20: Array access: Offset: [-529, +oo] Size: 12 by call to `X509_print` 
        447.   
        448.       if (BIO_printf(bp, "%s %2d %02d:%02d:%02d%.*s %d%s",
        449.                      mon[M - 1], d, h, m, s, f_len, f, y,
                                  ^
        450.                      (gmt) ? " GMT" : "") <= 0)
        451.           return (0);
