}
/* Add end part to expanded path */
- strncat(expanded_path, end_path, PATH_MAX);
+ strncat(expanded_path, end_path, PATH_MAX - strlen(expanded_path) - 1);
free(cut_path);
return expanded_path;
}
}
}
+
+/*
+ * Create a new string using two strings range.
+ */
+char *utils_strdupdelim(const char *begin, const char *end)
+{
+ char *str;
+
+ str = zmalloc(end - begin + 1);
+ if (str == NULL) {
+ PERROR("zmalloc strdupdelim");
+ goto error;
+ }
+
+ memcpy(str, begin, end - begin);
+ str[end - begin] = '\0';
+
+error:
+ return str;
+}