The following test:
char buf[4];
kmsan_unpoison_shadow(buf, 1);
kmsan_check_memory(buf, 4);
doesn't report any errors.
This could be related to kmsan_unpoison_shadow() zeroing out the origin despite there still are uninitialized bytes.
We must only zero out an origin iff the shadow is also zeroed out.