`killall` truncates process names to 7 characters (3 on 32-bit architectures)
$ ln -s /bin/sleep /tmp/sleep12345678
$ /tmp/sleep12345678 1000&
[1] 24449
$ killall sleep12345678
sleep12345678: no process found
$ killall sleep12
[1] + 24449 terminated /tmp/sleep12345678 1000
Obvious bug is here: https://gitlab.com/psmisc/psmisc/blob/1e2f38a202798a78554ae5f5d12f697f3607f89f/src/killall.c#L353
comm
is a pointer, not an array. sizeof is getting the size of the pointer. So the maximum command length, which used to be 15, and was intended to be increased to 64, actually got reduced to 7 on 64-bit arches and 3 on 32-bit ones.
This may not be the only such bug. I would recommend auditing the recent changes to expand command sizes from 16 to 64 characters to make sure other similar mistakes weren't made in other places. There's a potential security impact here too if this kind of mistake occurs the other way around and a rogue process might be able to overflow a buffer, so it's important to review all the buffer sizing stuff.