fucking FLUORIDATED memcpy and sizeof, took sizeof of a fucking pointer so memcpy only copied the first pointer-size bytes which is exactly enough for the structure's first field to be filled but rest be left nulled. i spent too much time figuring this out.