diff options
author | Reyk Floeter <reyk@esdenera.com> | 2015-06-22 13:51:35 +0200 |
---|---|---|
committer | Reyk Floeter <reyk@esdenera.com> | 2015-06-22 13:51:35 +0200 |
commit | 78ab0835f18d0902a86e7f877530780a7b3c0370 (patch) | |
tree | 62e6fefe224a37983d448a96b7bc6934373ae4d3 | |
parent | 3e7417278dfa7c202b1325e78413714a76f0d3c5 (diff) | |
parent | ada83f819308cab0c92bcba37a152a655782157b (diff) | |
download | httpd-78ab0835f18d0902a86e7f877530780a7b3c0370.tar.gz httpd-78ab0835f18d0902a86e7f877530780a7b3c0370.zip |
Merge branch 'master' into patterns
-rw-r--r-- | httpd/server_http.c | 25 |
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); } } |