openbsd-ports/www/mod_dav/patches/patch-dav_util_c

25 lines
934 B
Plaintext

--- dav_util.c~ 2008-07-18 07:35:25.000000000 -0700
+++ dav_util.c 2008-07-18 07:45:18.000000000 -0700
@@ -546,7 +546,7 @@ void dav_xml2text(pool * p,
array_header *namespaces,
int *ns_map,
const char **pbuf,
- size_t *psize)
+ int *psize)
{
/* get the exact size, plus a null terminator */
size_t size = dav_elem_size(elem, style, namespaces, ns_map) + 1;
@@ -1254,7 +1254,11 @@ static dav_error * dav_validate_resource
switch(state_list->type) {
case dav_if_etag:
{
- int mismatch = strcmp(state_list->etag, etag);
+ const char *given_etag = state_list->etag;
+ const char *current_etag = etag;
+ if ((given_etag[0] == 'W') && (given_etag[1] == '/')) given_etag += 2;
+ if ((current_etag[0] == 'W') && (current_etag[1] == '/')) current_etag += 2;
+ int mismatch = strcmp(given_etag, current_etag);
if (state_list->condition == DAV_IF_COND_NORMAL && mismatch) {
/*