MINOR: chunks: ensure that chunk_strcpy() adds a trailing zero

Since thus function bears the name of a well-known string function, it
must at least promise compatible semantics. Here it means always adding
the trailing zero so that anyone willing to use chunk->str as a regular
string can do it. Of course the zero is not counted in the chunk's length.
(cherry picked from commit 0b6044fa241386d21994e496bc9e29851b5863dc)

[wt: not strictly needed but backported to ensure that any future patch
 relying on it works as expected]
(cherry picked from commit 88cb10e3f13c3278e3d1fb84c13dd5171ebe0d2c)
diff --git a/include/common/chunk.h b/include/common/chunk.h
index e6a3d1e..882cc93 100644
--- a/include/common/chunk.h
+++ b/include/common/chunk.h
@@ -83,17 +83,20 @@
 	chk->size = 0;			/* mark it read-only */
 }
 
+/* copies str into <chk> followed by a trailing zero. Returns 0 in
+ * case of failure.
+ */
 static inline int chunk_strcpy(struct chunk *chk, const char *str)
 {
 	size_t len;
 
 	len = strlen(str);
 
-	if (unlikely(len > chk->size))
+	if (unlikely(len >= chk->size))
 		return 0;
 
 	chk->len  = len;
-	memcpy(chk->str, str, len);
+	memcpy(chk->str, str, len + 1);
 
 	return 1;
 }