When running make check with -fsanitize=address you can see the following test fails:
PASS: t-sysutils
=================================================================
==312532==ERROR: AddressSanitizer: global-buffer-overflow on address 0x00000043f88b at pc 0x7fde1fcacab7 bp 0x7ffc5bcdf1e0 sp 0x7ffc5bcde9a0
READ of size 20 at 0x00000043f88b thread T0
#0 0x7fde1fcacab6 in MemcmpInterceptorCommon(void*, int (*)(void const*, void const*, unsigned long), void const*, void const*, unsigned long) (/lib64/libasan.so.8+0xacab6) (BuildId: 6a82bb83b1f19d3f3a2118085acf79daa3b52371)
#1 0x7fde1fcacf51 in memcmp (/lib64/libasan.so.8+0xacf51) (BuildId: 6a82bb83b1f19d3f3a2118085acf79daa3b52371)
#2 0x00000040b0e0 in uncompress_ecc_q_in_canon_sexp (/home/collin/.local/src/gnupg/common/t-sexputil+0x40b0e0) (BuildId: f25bb836ad79cded5a81c271aff549890b058a13)
#3 0x00000040551d in test_ecc_uncompress (/home/collin/.local/src/gnupg/common/t-sexputil+0x40551d) (BuildId: f25bb836ad79cded5a81c271aff549890b058a13)
#4 0x000000402e81 in main (/home/collin/.local/src/gnupg/common/t-sexputil+0x402e81) (BuildId: f25bb836ad79cded5a81c271aff549890b058a13)
#5 0x7fde1f2115f4 in __libc_start_call_main (/lib64/libc.so.6+0x35f4) (BuildId: 2b3c02fe7e4d3811767175b6f323692a10a4e116)
#6 0x7fde1f2116a7 in __libc_start_main@@GLIBC_2.34 (/lib64/libc.so.6+0x36a7) (BuildId: 2b3c02fe7e4d3811767175b6f323692a10a4e116)
#7 0x000000403584 in _start (/home/collin/.local/src/gnupg/common/t-sexputil+0x403584) (BuildId: f25bb836ad79cded5a81c271aff549890b058a13)
0x00000043f88b is located 0 bytes after global variable '*.LC26' defined in 'sexputil.c' (0x00000043f880) of size 11
'*.LC26' is ascii string 'public-key'
0x00000043f88b is located 53 bytes before global variable '*.LC27' defined in 'sexputil.c' (0x00000043f8c0) of size 12
'*.LC27' is ascii string 'private-key'
SUMMARY: AddressSanitizer: global-buffer-overflow (/home/collin/.local/src/gnupg/common/t-sexputil+0x40b0e0) (BuildId: f25bb836ad79cded5a81c271aff549890b058a13) in uncompress_ecc_q_in_canon_sexp
Shadow bytes around the buggy address:
0x00000043f600: f9 f9 f9 f9 00 00 00 04 f9 f9 f9 f9 04 f9 f9 f9
0x00000043f680: f9 f9 f9 f9 02 f9 f9 f9 f9 f9 f9 f9 03 f9 f9 f9
0x00000043f700: f9 f9 f9 f9 00 00 07 f9 f9 f9 f9 f9 00 00 00 00
0x00000043f780: 00 f9 f9 f9 f9 f9 f9 f9 00 00 05 f9 f9 f9 f9 f9
0x00000043f800: 00 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9
=>0x00000043f880: 00[03]f9 f9 f9 f9 f9 f9 00 04 f9 f9 f9 f9 f9 f9
0x00000043f900: 04 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9
0x00000043f980: 06 f9 f9 f9 f9 f9 f9 f9 06 f9 f9 f9 f9 f9 f9 f9
0x00000043fa00: 00 00 05 f9 f9 f9 f9 f9 06 f9 f9 f9 f9 f9 f9 f9
0x00000043fa80: 04 f9 f9 f9 f9 f9 f9 f9 00 00 04 f9 f9 f9 f9 f9
0x00000043fb00: 06 f9 f9 f9 f9 f9 f9 f9 06 f9 f9 f9 f9 f9 f9 f9
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==312532==ABORTING
FAIL: t-sexputilThis seems to have been caused by a typo, || was used where && makes more sense. I'll send a patch with the fix.