apps/s_server.c:2862: error: BUFFER_OVERRUN_L1
  Offset: -1 Size: [max(1, `bufsize`), max(0, `bufsize`)] by call to `SSL_get_shared_ciphers`.
Showing all 13 steps of the trace


apps/s_server.c:2657:1: Global `bufsize`
2655.   #endif
2656.   
2657. > static int www_body(const char *hostname, int s, int stype,
2658.                       unsigned char *context)
2659.   {

apps/s_server.c:2675:11: Call
2673.       width = s + 1;
2674.   
2675.       buf = app_malloc(bufsize, "server www buffer");
                  ^
2676.       io = BIO_new(BIO_f_buffer());
2677.       ssl_bio = BIO_new(BIO_f_ssl());

apps/apps.c:991:1: Parameter `sz`
  989.   }
  990.   
  991. > void* app_malloc(int sz, const char *what)
  992.   {
  993.       void *vp = OPENSSL_malloc(sz);

apps/apps.c:993:16: Call
  991.   void* app_malloc(int sz, const char *what)
  992.   {
  993.       void *vp = OPENSSL_malloc(sz);
                        ^
  994.   
  995.       if (vp == NULL) {

crypto/mem.c:124:9: Assignment
    122.   
    123.       if (num <= 0)
    124.           return NULL;
                   ^
    125.   
    126.       allow_customize = 0;

apps/apps.c:993:5: Assignment
  991.   void* app_malloc(int sz, const char *what)
  992.   {
  993.       void *vp = OPENSSL_malloc(sz);
             ^
  994.   
  995.       if (vp == NULL) {

apps/apps.c:1001:5: Assignment
  999.           exit(1);
  1000.       }
  1001.       return vp;
              ^
  1002.   }
  1003.   

apps/s_server.c:2675:5: Assignment
2673.       width = s + 1;
2674.   
2675.       buf = app_malloc(bufsize, "server www buffer");
            ^
2676.       io = BIO_new(BIO_f_buffer());
2677.       ssl_bio = BIO_new(BIO_f_ssl());

apps/s_server.c:2862:17: Call
2860.               }
2861.               BIO_puts(io, "\n");
2862.               p = SSL_get_shared_ciphers(con, buf, bufsize);
                        ^
2863.               if (p != NULL) {
2864.                   BIO_printf(io,

ssl/ssl_lib.c:1958:1: <Length trace>
1956.   }
1957.   
1958. > char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len)
1959.   {
1960.       char *p;

ssl/ssl_lib.c:1958:1: Parameter `*buf`
  1956.   }
  1957.   
  1958. > char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len)
  1959.   {
  1960.       char *p;

ssl/ssl_lib.c:1968:5: Assignment
  1966.           return (NULL);
  1967.   
  1968.       p = buf;
              ^
  1969.       sk = s->session->ciphers;
  1970.   

ssl/ssl_lib.c:1990:5: Array access: Offset: -1 Size: [max(1, bufsize), max(0, bufsize)] by call to `SSL_get_shared_ciphers` 
  1988.           len -= n + 1;
  1989.       }
  1990.       p[-1] = '\0';
              ^
  1991.       return (buf);
  1992.   }
