diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-08-07 15:20:25 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:31:29 -0500 |
commit | 9811a3981bcc466726567aea4188a44c9fb07752 (patch) | |
tree | f89e6eaa201575ba4373e4a7e7a31d8aa1d353c0 /source4 | |
parent | e49aeef2323b8432133e502152796b97119890d5 (diff) | |
download | samba-9811a3981bcc466726567aea4188a44c9fb07752.tar.gz samba-9811a3981bcc466726567aea4188a44c9fb07752.tar.bz2 samba-9811a3981bcc466726567aea4188a44c9fb07752.zip |
r9179: cope with simultaneous web requests using the same session variable
(This used to be commit 7d6e6012198d6fd3770da22ec5e1770c9bcd4ed7)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/web_server/http.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source4/web_server/http.c b/source4/web_server/http.c index 59bef468dd..61e6277800 100644 --- a/source4/web_server/http.c +++ b/source4/web_server/http.c @@ -751,6 +751,7 @@ void http_process_input(struct websrv_context *web) struct esp_state *esp; struct esp_data *edata = talloc_get_type(web->task->private, struct esp_data); char *p; + void *save_mpr_ctx = mprMemCtx(); int i; const char *file_type = NULL; BOOL esp_enable = False; @@ -800,6 +801,7 @@ void http_process_input(struct websrv_context *web) if (web->input.url == NULL) { http_error(web, 400, "You must specify a GET or POST request"); + mprSetCtx(save_mpr_ctx); return; } @@ -808,6 +810,7 @@ void http_process_input(struct websrv_context *web) status = http_parse_post(esp); if (!NT_STATUS_IS_OK(status)) { http_error(web, 400, "Malformed POST data"); + mprSetCtx(save_mpr_ctx); return; } } @@ -815,6 +818,7 @@ void http_process_input(struct websrv_context *web) status = http_parse_get(esp); if (!NT_STATUS_IS_OK(status)) { http_error(web, 400, "Malformed GET data"); + mprSetCtx(save_mpr_ctx); return; } } @@ -894,12 +898,14 @@ void http_process_input(struct websrv_context *web) } talloc_free(esp); + mprSetCtx(save_mpr_ctx); return; internal_error: mprSetCtx(esp); talloc_free(esp); http_error(web, 500, "Internal server error"); + mprSetCtx(save_mpr_ctx); } |