summaryrefslogtreecommitdiffstats
path: root/external/neon/neon_uri_parse_allow_others.patch
blob: 7c3540a05bae66928225ea9b2c3eb8a4decbb458 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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,9 @@
 /* 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)
+/* 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 */
@@ -237,7 +238,7 @@
 
     p = s;
 
-    while (uri_lookup(*p) & URI_SEGCHAR)
+    while (uri_lookup(*p) & URI_SEGCHAR && *p != '\0')
         p++;
 
     /* => p = [ "?" query ] [ "#" fragment ] */