Allocate enough space for array string pointers in copy_properties

The original code wasn't calloc'ing enough space because it was using a single byte per pointer instead of sizeof(char*) per pointer.

Found this from the output of Valgrind... 43 was an odd size to alloc:
==4190==  Address 0x1394d338 is 40 bytes inside a block of size 43 alloc'd