#undef __assign_str
 #define __assign_str(dst, src)                                         \
-       strcpy(__get_str(dst), __data_offsets.dst##_ptr_ ?              \
-              __data_offsets.dst##_ptr_ : "(null)")
+       memcpy(__get_str(dst), __data_offsets.dst##_ptr_ ?              \
+              __data_offsets.dst##_ptr_ : "(null)",                    \
+              __get_dynamic_array_len(dst))
 
 #undef __assign_str_len
 #define __assign_str_len(dst, src, len)                                        \
 
 #undef __assign_rel_str
 #define __assign_rel_str(dst, src)                                     \
-       strcpy(__get_rel_str(dst), __data_offsets.dst##_ptr_ ?          \
-              __data_offsets.dst##_ptr_ : "(null)")
+       memcpy(__get_rel_str(dst), __data_offsets.dst##_ptr_ ?          \
+              __data_offsets.dst##_ptr_ : "(null)",                    \
+              __get_rel_dynamic_array_len(dst))
 
 #undef __assign_rel_str_len
 #define __assign_rel_str_len(dst, src, len)                            \