mirror of
https://github.com/samba-team/samba.git
synced 2025-01-13 13:18:06 +03:00
r9179: cope with simultaneous web requests using the same session variable
This commit is contained in:
parent
0b96b3bfe3
commit
7d6e601219
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user