27 lines
836 B
Diff
27 lines
836 B
Diff
--- mod_aclr2.c.unpatched 2015-05-12 20:12:32.687000116 +0200
|
|
+++ mod_aclr2.c 2015-05-13 10:23:09.215000116 +0200
|
|
@@ -147,6 +147,23 @@
|
|
real_uri += docroot_len;
|
|
}
|
|
|
|
+ if (!strncmp(real_uri, "/~", 2))
|
|
+ {
|
|
+ char *first = real_uri+1; //points to ~
|
|
+ //and then do the same thing for the shifting.
|
|
+ char *bbb = strchr(first, '/'); //points to 2nd /
|
|
+ if (bbb)
|
|
+ {
|
|
+ int size = strlen(bbb);
|
|
+ memmove(real_uri, bbb, size);
|
|
+ real_uri[size] = '\0'; //ensure string is null terminated.
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ real_uri[1] = '\0'; //stomp on the ~ making it "/"
|
|
+ }
|
|
+ }
|
|
+
|
|
snprintf(iredirect, sizeof(iredirect), "%s%s", idhead, real_uri);
|
|
|
|
aclr_debug(3, r->server, "trying to process request: %s%s -> %s",
|