diff -r 1d2538a1ba8f -r f78a585e1a2f src/server/webdav/requestparser.c --- a/src/server/webdav/requestparser.c Thu Aug 11 20:51:39 2022 +0200 +++ b/src/server/webdav/requestparser.c Sat Aug 13 15:56:51 2022 +0200 @@ -35,6 +35,7 @@ #include #include "requestparser.h" +#include "webdav.h" #define xstreq(a, b) !strcmp((const char*)a, (const char*)b) @@ -59,15 +60,6 @@ return prop; } -static UcxKey propkey(const char *ns, const char *name) { - UcxKey key; - sstr_t data = ucx_sprintf("%s\n%s", name, ns); - key.data = data.ptr; - key.len = data.length; - key.hash = ucx_hash(data.ptr, data.length); - return key; -} - static int parse_prop( Session *sn, xmlNode *node, @@ -88,7 +80,7 @@ const char* name = (const char*)pnode->name; // check for prop duplicates - UcxKey k = propkey((const char*)ns, (const char*)name); + UcxKey k = webdav_property_key((const char*)ns, (const char*)name); if(!k.data) { *error = proppatch ? PROPPATCH_PARSER_OOM : PROPFIND_PARSER_OOM; return 1; @@ -119,7 +111,7 @@ *error = PROPPATCH_PARSER_DUPLICATE; } - free(k.data); + free((void*)k.data); if(*error) { return 1; }