==1== Memcheck, a memory error detector
==1== Copyright (C) 2002-2026, and GNU GPL'd, by Julian Seward et al.
==1== Using Valgrind-3.27.1 and LibVEX; rerun with -h for copyright info
==1== Command: ./build/hdrcat /poc/small.txt
==1== 
==1== Invalid write of size 2
==1==    at 0x48501B3: memmove (vg_replace_strmem.c:1429)
==1==    by 0x40102D: util_copy_value (util.c:15)
==1==    by 0x400D91: hdr_parse_line (hdr.c:104)
==1==    by 0x400F11: hdr_parse_block (hdr.c:134)
==1==    by 0x4009EC: main (hdrcat.c:122)
==1==  Address 0x4a5e770 is 0 bytes after a block of size 64 alloc'd
==1==    at 0x4841AE6: malloc (vg_replace_malloc.c:447)
==1==    by 0x401004: util_copy_value (util.c:11)
==1==    by 0x400D91: hdr_parse_line (hdr.c:104)
==1==    by 0x400F11: hdr_parse_block (hdr.c:134)
==1==    by 0x4009EC: main (hdrcat.c:122)
==1== 
==1== Invalid write of size 1
==1==    at 0x401039: util_copy_value (util.c:16)
==1==    by 0x400D91: hdr_parse_line (hdr.c:104)
==1==    by 0x400F11: hdr_parse_block (hdr.c:134)
==1==    by 0x4009EC: main (hdrcat.c:122)
==1==  Address 0x4a5e776 is 6 bytes after a block of size 64 alloc'd
==1==    at 0x4841AE6: malloc (vg_replace_malloc.c:447)
==1==    by 0x401004: util_copy_value (util.c:11)
==1==    by 0x400D91: hdr_parse_line (hdr.c:104)
==1==    by 0x400F11: hdr_parse_block (hdr.c:134)
==1==    by 0x4009EC: main (hdrcat.c:122)
==1== 
==1== Invalid read of size 1
==1==    at 0x484B7B4: strlen (vg_replace_strmem.c:506)
==1==    by 0x48A2D1F: __printf_buffer (vfprintf-process-arg.c:443)
==1==    by 0x48A3B63: __vfprintf_internal (vfprintf-internal.c:1548)
==1==    by 0x4897A42: printf (printf.c:33)
==1==    by 0x400A2D: main (hdrcat.c:125)
==1==  Address 0x4a5e770 is 0 bytes after a block of size 64 alloc'd
==1==    at 0x4841AE6: malloc (vg_replace_malloc.c:447)
==1==    by 0x401004: util_copy_value (util.c:11)
==1==    by 0x400D91: hdr_parse_line (hdr.c:104)
==1==    by 0x400F11: hdr_parse_block (hdr.c:134)
==1==    by 0x4009EC: main (hdrcat.c:122)
==1== 
==1== Invalid read of size 1
==1==    at 0x48501EE: memmove (vg_replace_strmem.c:1429)
==1==    by 0x48983F7: memcpy (string_fortified.h:29)
==1==    by 0x48983F7: __printf_buffer_write (Xprintf_buffer_write.c:39)
==1==    by 0x48A1448: __printf_buffer (vfprintf-process-arg.c:471)
==1==    by 0x48A3B63: __vfprintf_internal (vfprintf-internal.c:1548)
==1==    by 0x4897A42: printf (printf.c:33)
==1==    by 0x400A2D: main (hdrcat.c:125)
==1==  Address 0x4a5e770 is 0 bytes after a block of size 64 alloc'd
==1==    at 0x4841AE6: malloc (vg_replace_malloc.c:447)
==1==    by 0x401004: util_copy_value (util.c:11)
==1==    by 0x400D91: hdr_parse_line (hdr.c:104)
==1==    by 0x400F11: hdr_parse_block (hdr.c:134)
==1==    by 0x4009EC: main (hdrcat.c:122)
==1== 
==1== Invalid read of size 1
==1==    at 0x48501E0: memmove (vg_replace_strmem.c:1429)
==1==    by 0x48983F7: memcpy (string_fortified.h:29)
==1==    by 0x48983F7: __printf_buffer_write (Xprintf_buffer_write.c:39)
==1==    by 0x48A1448: __printf_buffer (vfprintf-process-arg.c:471)
==1==    by 0x48A3B63: __vfprintf_internal (vfprintf-internal.c:1548)
==1==    by 0x4897A42: printf (printf.c:33)
==1==    by 0x400A2D: main (hdrcat.c:125)
==1==  Address 0x4a5e771 is 1 bytes after a block of size 64 alloc'd
==1==    at 0x4841AE6: malloc (vg_replace_malloc.c:447)
==1==    by 0x401004: util_copy_value (util.c:11)
==1==    by 0x400D91: hdr_parse_line (hdr.c:104)
==1==    by 0x400F11: hdr_parse_block (hdr.c:134)
==1==    by 0x4009EC: main (hdrcat.c:122)
==1== 
==1== 
==1== HEAP SUMMARY:
==1==     in use at exit: 0 bytes in 0 blocks
==1==   total heap usage: 13 allocs, 13 frees, 9,243 bytes allocated
==1== 
==1== All heap blocks were freed -- no leaks are possible
==1== 
==1== For lists of detected and suppressed errors, rerun with: -s
==1== ERROR SUMMARY: 20 errors from 5 contexts (suppressed: 0 from 0)
