Helper lookup may be made without a client HTTP Request,
(stored in lm_request->request). But in Helper::TT cases the
lm_request->request was dereferenced without any checks.
case Helper::TT:
/* we have been given a blob to send to the client */
safe_free(lm_request->server_blob);
- lm_request->request->flags.mustKeepalive = true;
- if (lm_request->request->flags.proxyKeepalive) {
+
+ if (lm_request->request)
+ lm_request->request->flags.mustKeepalive = true;
+
+ if (lm_request->request && lm_request->request->flags.proxyKeepalive) {
const char *tokenNote = reply.notes.findFirst("token");
lm_request->server_blob = xstrdup(tokenNote);
auth_user_request->user()->credentials(Auth::Handshake);
case Helper::TT:
/* we have been given a blob to send to the client */
safe_free(lm_request->server_blob);
- lm_request->request->flags.mustKeepalive = true;
- if (lm_request->request->flags.proxyKeepalive) {
+
+ if (lm_request->request)
+ lm_request->request->flags.mustKeepalive = true;
+
+ if (lm_request->request && lm_request->request->flags.proxyKeepalive) {
const char *serverBlob = reply.notes.findFirst("token");
lm_request->server_blob = xstrdup(serverBlob);
auth_user_request->user()->credentials(Auth::Handshake);