It's unclear if copy is expected to insert a null-terminator in the destination buffer or not -- I have seen an implementation that does.