* Fix logging on SafeStringCopy overflow failure
* Fix CRASH() macro to not take varargs
Didn't work, probably a remnant of a different iteration I made.
* Fix ValidateChannel CRASH call
---------
Co-authored-by: Luke Street <luke@street.dev>
* Array size UB fixes
* Fix ShieldD
* Remove (almost) all unsafe strcpy calls
Bunch of macros. C arrays are easy enough and just need a different call. For various cases where a char* is passed around bare, I've made a TEXT_SPAN macro that can store a length too for bounds checking.
* Move crash handling in safe string operations to separate TU
* strcat safe version
* sprintf made safe too
* Fix compile