Csak mert írtad, hogy szól a clang fordító. Hát nem. Simán hagyja megbújni a lekezeletlen NULL pointert, amit a kolléga időprés vagy bármi miatt trehányul taknyolt bele. Ahogy a többi trehányságra sem szól. Az strcpy-t már régen ki kellett volna írtani. Bár az strncpy-vel is csúnya hiba követhető el. A checked-C és safe-C projektek sajnos nem fejlődnek megfelelőképpen, így az sem lesz erre egyelőre igéretes megoldás.
Mindössze ez a baj a C-vel. Próbáld meg Rust esetén a null pointert például időprés miatti trehányság okán elkövetni. Vagy a függvényben eldobni a struktúrát, amivel később a függvényt meghívó program még operál.