aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReyk Floeter <reyk@esdenera.com>2015-06-22 13:51:35 +0200
committerReyk Floeter <reyk@esdenera.com>2015-06-22 13:51:35 +0200
commit78ab0835f18d0902a86e7f877530780a7b3c0370 (patch)
tree62e6fefe224a37983d448a96b7bc6934373ae4d3
parent3e7417278dfa7c202b1325e78413714a76f0d3c5 (diff)
parentada83f819308cab0c92bcba37a152a655782157b (diff)
downloadhttpd-78ab0835f18d0902a86e7f877530780a7b3c0370.tar.gz
httpd-78ab0835f18d0902a86e7f877530780a7b3c0370.zip
Merge branch 'master' into patterns
-rw-r--r--httpd/server_http.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/httpd/server_http.c b/httpd/server_http.c
index a63e2ab..bd686e2 100644
--- a/httpd/server_http.c
+++ b/httpd/server_http.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server_http.c,v 1.81 2015/06/21 13:08:36 reyk Exp $ */
+/* $OpenBSD: server_http.c,v 1.82 2015/06/22 11:46:06 reyk Exp $ */
/*
* Copyright (c) 2006 - 2015 Reyk Floeter <reyk@openbsd.org>
@@ -953,12 +953,15 @@ server_expand_http(struct client *clt, const char *val, char *buf,
}
if (strstr(val, "$REMOTE_USER") != NULL) {
if ((srv_conf->flags & SRVFLAG_AUTH) &&
- clt->clt_remote_user != NULL)
- str = clt->clt_remote_user;
- else
- str = "";
- if (expand_string(buf, len,
- "$REMOTE_USER", str) != 0)
+ clt->clt_remote_user != NULL) {
+ if ((str = url_encode(clt->clt_remote_user))
+ == NULL)
+ return (NULL);
+ } else
+ str = strdup("");
+ ret = expand_string(buf, len, "$REMOTE_USER", str);
+ free(str);
+ if (ret != 0)
return (NULL);
}
}
@@ -1001,8 +1004,12 @@ server_expand_http(struct client *clt, const char *val, char *buf,
return (NULL);
}
if (strstr(val, "$SERVER_NAME") != NULL) {
- if (expand_string(buf, len,
- "$SERVER_NAME", srv_conf->name) != 0)
+ if ((str = url_encode(srv_conf->name))
+ == NULL)
+ return (NULL);
+ ret = expand_string(buf, len, "$SERVER_NAME", str);
+ free(str);
+ if (ret != 0)
return (NULL);
}
}