[MINOR] standard: provide a new 'my_strndup' function

This function is only offered by GNU extensions and is sometimes
useful during configuration parsing.
diff --git a/src/standard.c b/src/standard.c
index 906f2a7..de5b664 100644
--- a/src/standard.c
+++ b/src/standard.c
@@ -654,6 +654,23 @@
 	return NULL;
 }
 
+/* copies at most <n> characters from <src> and always terminates with '\0' */
+char *my_strndup(const char *src, int n)
+{
+	int len = 0;
+	char *ret;
+
+	while (len < n && src[len])
+		len++;
+
+	ret = (char *)malloc(len + 1);
+	if (!ret)
+		return ret;
+	memcpy(ret, src, len);
+	ret[len] = '\0';
+	return ret;
+}
+
 /*
  * Local variables:
  *  c-indent-level: 8