1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-30 23:21:22 +03:00

journal-remote: check return value from MHD_add_response_header

Sadly, the API does not allow us to distinguish oom from invalid settings.
If the call fails, let's assume oom happened.

Coverity CID#1444714.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2021-03-07 12:08:06 +01:00
parent e3790c1480
commit 60d9c4f3b9
2 changed files with 18 additions and 7 deletions

View File

@ -501,7 +501,9 @@ static int request_handler_entries(
if (!response)
return respond_oom(connection);
MHD_add_response_header(response, "Content-Type", mime_types[m->mode]);
if (MHD_add_response_header(response, "Content-Type", mime_types[m->mode]) == MHD_NO)
return respond_oom(connection);
return MHD_queue_response(connection, MHD_HTTP_OK, response);
}
@ -629,7 +631,9 @@ static int request_handler_fields(
if (!response)
return respond_oom(connection);
MHD_add_response_header(response, "Content-Type", mime_types[m->mode == OUTPUT_JSON ? OUTPUT_JSON : OUTPUT_SHORT]);
if (MHD_add_response_header(response, "Content-Type", mime_types[m->mode == OUTPUT_JSON ? OUTPUT_JSON : OUTPUT_SHORT]) == MHD_NO)
return respond_oom(connection);
return MHD_queue_response(connection, MHD_HTTP_OK, response);
}
@ -652,8 +656,10 @@ static int request_handler_redirect(
return respond_oom(connection);
}
MHD_add_response_header(response, "Content-Type", "text/html");
MHD_add_response_header(response, "Location", target);
if (MHD_add_response_header(response, "Content-Type", "text/html") == MHD_NO ||
MHD_add_response_header(response, "Location", target) == MHD_NO)
return respond_oom(connection);
return MHD_queue_response(connection, MHD_HTTP_MOVED_PERMANENTLY, response);
}
@ -682,7 +688,9 @@ static int request_handler_file(
return respond_oom(connection);
TAKE_FD(fd);
MHD_add_response_header(response, "Content-Type", mime_type);
if (MHD_add_response_header(response, "Content-Type", mime_type) == MHD_NO)
return respond_oom(connection);
return MHD_queue_response(connection, MHD_HTTP_OK, response);
}
@ -783,7 +791,9 @@ static int request_handler_machine(
return respond_oom(connection);
TAKE_PTR(json);
MHD_add_response_header(response, "Content-Type", "application/json");
if (MHD_add_response_header(response, "Content-Type", "application/json") == MHD_NO)
return respond_oom(connection);
return MHD_queue_response(connection, MHD_HTTP_OK, response);
}

View File

@ -39,7 +39,8 @@ static int mhd_respond_internal(struct MHD_Connection *connection,
return MHD_NO;
log_debug("Queueing response %u: %s", code, buffer);
MHD_add_response_header(response, "Content-Type", "text/plain");
if (MHD_add_response_header(response, "Content-Type", "text/plain") == MHD_NO)
return MHD_NO;
return MHD_queue_response(connection, code, response);
}