diff options
-rw-r--r-- | external/neon/UnpackedTarball_neon.mk | 4 | ||||
-rw-r--r-- | external/neon/neon.patch | 47 | ||||
-rw-r--r-- | external/neon/neon_uri_parse_allow_others.patch | 11 |
3 files changed, 10 insertions, 52 deletions
diff --git a/external/neon/UnpackedTarball_neon.mk b/external/neon/UnpackedTarball_neon.mk index 725e1916cd28..ca7da77ea7c4 100644 --- a/external/neon/UnpackedTarball_neon.mk +++ b/external/neon/UnpackedTarball_neon.mk @@ -17,6 +17,10 @@ $(eval $(call gb_UnpackedTarball_add_files,neon,src,\ $(eval $(call gb_UnpackedTarball_set_patchlevel,neon,0)) +# For the upstream discussion of neon_uri_parse_allow_others.patch see +# http://lists.manyfish.co.uk/pipermail/neon/2020-February/001629.html +# or thread "RfC: Accept SharePoint href IRIs" + $(eval $(call gb_UnpackedTarball_add_patches,neon,\ external/neon/neon.patch \ external/neon/neon_ne_set_request_flag.patch \ diff --git a/external/neon/neon.patch b/external/neon/neon.patch index fa0c1938d4aa..fe106eaa17e0 100644 --- a/external/neon/neon.patch +++ b/external/neon/neon.patch @@ -261,53 +261,6 @@ #endif /* HAVE_SSPI */ ---- src/ne_uri.c 2007-12-05 12:04:47.000000000 +0100 -+++ src/ne_uri.c 2011-02-03 10:26:21.000000000 +0100 -@@ -42,7 +42,7 @@ - #include "ne_alloc.h" - #include "ne_uri.h" - --/* URI ABNF from RFC 3986: */ -+/* URI ABNF from RFC 3986: (TKR: SharePoint is contradictory to this RFC. So I fix it here. )*/ - - #define PS (0x0001) /* "+" */ - #define PC (0x0002) /* "%" */ -@@ -67,6 +67,9 @@ - - #define OT (0x4000) /* others */ - -+/* TKR new symbol */ -+#define WS (0x8000) /* Whitespaces ( Space, Tab ) */ -+ - #define URI_ALPHA (AL) - #define URI_DIGIT (DG) - -@@ -83,20 +86,21 @@ - /* pchar = unreserved / pct-encoded / sub-delims / ":" / "@" */ - #define URI_PCHAR (URI_UNRESERVED | PC | URI_SUBDELIM | CL | AT) - /* invented: segchar = pchar / "/" */ --#define URI_SEGCHAR (URI_PCHAR | FS) -+/* (TKR) WS added */ -+#define URI_SEGCHAR (URI_PCHAR | FS | WS) - /* query = *( pchar / "/" / "?" ) */ - #define URI_QUERY (URI_PCHAR | FS | QU) - /* fragment == query */ - #define URI_FRAGMENT URI_QUERY - - /* any characters which should be path-escaped: */ --#define URI_ESCAPE ((URI_GENDELIM & ~(FS)) | URI_SUBDELIM | OT | PC) -+#define URI_ESCAPE ((URI_GENDELIM & ~(FS)) | URI_SUBDELIM | OT | WS | PC) - - static const unsigned int uri_chars[256] = { - /* 0xXX x0 x2 x4 x6 x8 xA xC xE */ --/* 0x */ OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, -+/* 0x */ OT, OT, OT, OT, OT, OT, OT, OT, OT, WS, OT, OT, OT, OT, OT, OT, - /* 1x */ OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, --/* 2x */ OT, SD, OT, GD, SD, PC, SD, SD, SD, SD, SD, PS, SD, DS, DT, FS, -+/* 2x */ WS, SD, OT, GD, SD, PC, SD, SD, SD, SD, SD, PS, SD, DS, DT, FS, - /* 3x */ DG, DG, DG, DG, DG, DG, DG, DG, DG, DG, CL, SD, OT, SD, OT, QU, - /* 4x */ AT, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, - /* 5x */ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, GD, OT, GD, OT, US, --- src/ne_openssl.c +++ src/ne_openssl.c @@ -43,6 +43,13 @@ diff --git a/external/neon/neon_uri_parse_allow_others.patch b/external/neon/neon_uri_parse_allow_others.patch index 9de2cf6b9ae7..7c3540a05bae 100644 --- a/external/neon/neon_uri_parse_allow_others.patch +++ b/external/neon/neon_uri_parse_allow_others.patch @@ -1,13 +1,14 @@ diff -ur src/ne_uri.c --- src/ne_uri.c 2020-02-07 10:49:58.764417840 +0000 +++ src/ne_uri.c 2020-02-07 10:51:33.675627141 +0000 -@@ -87,7 +87,8 @@ +@@ -87,7 +87,9 @@ + /* pchar = unreserved / pct-encoded / sub-delims / ":" / "@" */ #define URI_PCHAR (URI_UNRESERVED | PC | URI_SUBDELIM | CL | AT) /* invented: segchar = pchar / "/" */ - /* (TKR) WS added */ --#define URI_SEGCHAR (URI_PCHAR | FS | WS) -+/* also allow OT characters to parse SharePoint 2016 href URIs with unescaped UTF8 */ -+#define URI_SEGCHAR (URI_PCHAR | FS | WS | OT) +-#define URI_SEGCHAR (URI_PCHAR | FS) ++/* allow OT characters to parse SharePoint 2016 href IRIs (breaking the spec ++ * of href XML Element: "MUST contain a URI or a relative reference." */ ++#define URI_SEGCHAR (URI_PCHAR | FS | OT) /* query = *( pchar / "/" / "?" ) */ #define URI_QUERY (URI_PCHAR | FS | QU) /* fragment == query */ |