user_strdup() forces null termination