test/tls13encryptiontest.c:286: error: BUFFER_OVERRUN_L3
  Offset: [2, +oo] Size: [1, +oo] by call to `test_mem_eq`.
Showing all 13 steps of the trace


test/tls13encryptiontest.c:277:16: Call
275.   
276.       if (enc)
277.           refd = multihexstr2buf(recd->ciphertext, &refdatalen);
                      ^
278.       else
279.           refd = multihexstr2buf(recd->plaintext, &refdatalen);

test/tls13encryptiontest.c:196:1: Parameter `*len`
  194.    * 3 chunks
  195.    */
  196. > static unsigned char *multihexstr2buf(const char *str[3], size_t *len)
  197.   {
  198.       size_t outer, inner, curr = 0;

test/tls13encryptiontest.c:286:10: Call
284.       }
285.   
286.       if (!TEST_mem_eq(rec->data, rec->length, refd, refdatalen))
                ^
287.           goto err;
288.   

test/testutil/tests.c:310:1: Parameter `n1`
  308.   }
  309.   
  310. > int test_mem_eq(const char *file, int line, const char *st1, const char *st2,
  311.                   const void *s1, size_t n1, const void *s2, size_t n2)
  312.   {

test/testutil/tests.c:319:20: Call
  317.       if (n1 != n2 || s1 == NULL || s2 == NULL || memcmp(s1, s2, n1) != 0) {
  318.           char *m1 = print_mem_maybe_null(s1, n1, b1);
  319.           char *m2 = print_mem_maybe_null(s2, n2, b2);
                            ^
  320.   
  321.           test_fail_message(NULL, file, line, "memory",

test/testutil/tests.c:276:1: <Offset trace>
274.    * freed by the caller.
275.    */
276. > static char *print_mem_maybe_null(const void *s, size_t n,
277.                                     char outbuf[MEM_BUFFER_SIZE])
278.   {

test/testutil/tests.c:276:1: Parameter `n`
    274.    * freed by the caller.
    275.    */
    276. > static char *print_mem_maybe_null(const void *s, size_t n,
    277.                                     char outbuf[MEM_BUFFER_SIZE])
    278.   {

test/testutil/tests.c:301:13: Assignment
    299.       }
    300.       if (pad) {
    301.           out[i++] = '.';
                       ^
    302.           out[i++] = '.';
    303.           out[i++] = '.';

test/testutil/tests.c:302:13: Assignment
    300.       if (pad) {
    301.           out[i++] = '.';
    302.           out[i++] = '.';
                       ^
    303.           out[i++] = '.';
    304.       }

test/testutil/tests.c:276:1: <Length trace>
274.    * freed by the caller.
275.    */
276. > static char *print_mem_maybe_null(const void *s, size_t n,
277.                                     char outbuf[MEM_BUFFER_SIZE])
278.   {

test/testutil/tests.c:276:1: Parameter `*outbuf`
    274.    * freed by the caller.
    275.    */
    276. > static char *print_mem_maybe_null(const void *s, size_t n,
    277.                                     char outbuf[MEM_BUFFER_SIZE])
    278.   {

test/testutil/tests.c:281:5: Assignment
    279.       size_t i;
    280.       const unsigned char *p = (const unsigned char *)s;
    281.       char *out = outbuf;
               ^
    282.       int pad = 2 * n >= MEM_BUFFER_SIZE;
    283.   

test/testutil/tests.c:303:9: Array access: Offset: [2, +oo] Size: [1, +oo] by call to `test_mem_eq` 
    301.           out[i++] = '.';
    302.           out[i++] = '.';
    303.           out[i++] = '.';
                   ^
    304.       }
    305.       out[i] = '\0';
