apps/s_server.c:2791: 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:2586:1: Global `bufsize`
2584.   #endif
2585.   
2586. > static int www_body(char *hostname, int s, int stype, unsigned char *context)
2587.   {
2588.       char *buf = NULL;

apps/s_server.c:2603:11: Call
2601.       width = s + 1;
2602.   
2603.       buf = app_malloc(bufsize, "server www buffer");
                  ^
2604.       io = BIO_new(BIO_f_buffer());
2605.       ssl_bio = BIO_new(BIO_f_ssl());

apps/apps.c:976:1: Parameter `sz`
  974.   }
  975.   
  976. > void* app_malloc(int sz, const char *what)
  977.   {
  978.       void *vp = OPENSSL_malloc(sz);

apps/apps.c:978:16: Call
  976.   void* app_malloc(int sz, const char *what)
  977.   {
  978.       void *vp = OPENSSL_malloc(sz);
                        ^
  979.   
  980.       if (vp == NULL) {

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

apps/apps.c:978:5: Assignment
  976.   void* app_malloc(int sz, const char *what)
  977.   {
  978.       void *vp = OPENSSL_malloc(sz);
             ^
  979.   
  980.       if (vp == NULL) {

apps/apps.c:986:5: Assignment
  984.           exit(1);
  985.       }
  986.       return vp;
             ^
  987.   }
  988.   

apps/s_server.c:2603:5: Assignment
2601.       width = s + 1;
2602.   
2603.       buf = app_malloc(bufsize, "server www buffer");
            ^
2604.       io = BIO_new(BIO_f_buffer());
2605.       ssl_bio = BIO_new(BIO_f_ssl());

apps/s_server.c:2791:17: Call
2789.               }
2790.               BIO_puts(io, "\n");
2791.               p = SSL_get_shared_ciphers(con, buf, bufsize);
                        ^
2792.               if (p != NULL) {
2793.                   BIO_printf(io,

ssl/ssl_lib.c:1940:1: <Length trace>
1938.   }
1939.   
1940. > char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len)
1941.   {
1942.       char *p;

ssl/ssl_lib.c:1940:1: Parameter `*buf`
  1938.   }
  1939.   
  1940. > char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len)
  1941.   {
  1942.       char *p;

ssl/ssl_lib.c:1950:5: Assignment
  1948.           return (NULL);
  1949.   
  1950.       p = buf;
              ^
  1951.       sk = s->session->ciphers;
  1952.   

ssl/ssl_lib.c:1972:5: Array access: Offset: -1 Size: [max(1, bufsize), max(0, bufsize)] by call to `SSL_get_shared_ciphers` 
  1970.           len -= n + 1;
  1971.       }
  1972.       p[-1] = '\0';
              ^
  1973.       return (buf);
  1974.   }
