return 5;
}
-char* kr_strcatdup(unsigned n, ...)
+char* kr_strcatdup_pool(knot_mm_t *pool, unsigned n, ...)
{
if (n < 1) {
return NULL;
char *result = NULL;
if (total_len > 0) {
if (unlikely(total_len == SIZE_MAX)) return NULL;
- result = malloc(total_len + 1);
+ result = mm_alloc(pool, total_len + 1);
}
if (result) {
char *stream = result;
/** Array of HTTP headers for DoH. */
typedef array_t(kr_http_header_array_entry_t) kr_http_header_array_t;
-/** Concatenate N strings. */
+/** Concatenate N strings and put the result into a mempool. */
KR_EXPORT
-char* kr_strcatdup(unsigned n, ...);
+char* kr_strcatdup_pool(knot_mm_t *pool, unsigned n, ...);
+/** Concatenate N strings. */
+#define kr_strcatdup(n, ...) kr_strcatdup_pool(NULL, n, ## __VA_ARGS__)
/** Construct absolute file path, without resolving symlinks.
* \return malloc-ed string or NULL (+errno in that case) */