diff --git a/main/manager.c b/main/manager.c index 5fcd347166a136e371da21aaa8b008eba072d812..31d970942b333ce952f6de65094bd0dec4236b87 100644 --- a/main/manager.c +++ b/main/manager.c @@ -6873,7 +6873,7 @@ static int generic_http_callback(struct ast_tcptls_session_instance *ser, */ if (!(session = build_mansession(remote_address))) { ast_http_request_close_on_completion(ser); - ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)\n"); + ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)"); return 0; } ao2_lock(session); @@ -6899,7 +6899,7 @@ static int generic_http_callback(struct ast_tcptls_session_instance *ser, if (http_header == NULL || out == NULL) { ast_http_request_close_on_completion(ser); - ast_http_error(ser, 500, "Server Error", "Internal Server Error (ast_str_create() out of memory)\n"); + ast_http_error(ser, 500, "Server Error", "Internal Server Error (ast_str_create() out of memory)"); goto generic_callback_out; } @@ -6907,13 +6907,13 @@ static int generic_http_callback(struct ast_tcptls_session_instance *ser, s.fd = mkstemp(template); /* create a temporary file for command output */ unlink(template); if (s.fd <= -1) { - ast_http_error(ser, 500, "Server Error", "Internal Server Error (mkstemp failed)\n"); + ast_http_error(ser, 500, "Server Error", "Internal Server Error (mkstemp failed)"); goto generic_callback_out; } s.f = fdopen(s.fd, "w+"); if (!s.f) { ast_log(LOG_WARNING, "HTTP Manager, fdopen failed: %s!\n", strerror(errno)); - ast_http_error(ser, 500, "Server Error", "Internal Server Error (fdopen failed)\n"); + ast_http_error(ser, 500, "Server Error", "Internal Server Error (fdopen failed)"); close(s.fd); goto generic_callback_out; } @@ -7109,7 +7109,7 @@ static int auth_http_callback(struct ast_tcptls_session_instance *ser, /* Digest found - parse */ if (ast_string_field_init(&d, 128)) { ast_http_request_close_on_completion(ser); - ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)\n"); + ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)"); return 0; } @@ -7138,7 +7138,7 @@ static int auth_http_callback(struct ast_tcptls_session_instance *ser, AST_RWLIST_UNLOCK(&users); ast_log(LOG_NOTICE, "%s failed to pass IP ACL as '%s'\n", ast_sockaddr_stringify_addr(&session->addr), d.username); ast_http_request_close_on_completion(ser); - ast_http_error(ser, 403, "Permission denied", "Permission denied\n"); + ast_http_error(ser, 403, "Permission denied", "Permission denied"); return 0; } @@ -7189,7 +7189,7 @@ static int auth_http_callback(struct ast_tcptls_session_instance *ser, */ if (!(session = build_mansession(remote_address))) { ast_http_request_close_on_completion(ser); - ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)\n"); + ast_http_error(ser, 500, "Server Error", "Internal Server Error (out of memory)"); return 0; } ao2_lock(session); @@ -7257,13 +7257,13 @@ static int auth_http_callback(struct ast_tcptls_session_instance *ser, s.fd = mkstemp(template); /* create a temporary file for command output */ unlink(template); if (s.fd <= -1) { - ast_http_error(ser, 500, "Server Error", "Internal Server Error (mkstemp failed)\n"); + ast_http_error(ser, 500, "Server Error", "Internal Server Error (mkstemp failed)"); goto auth_callback_out; } s.f = fdopen(s.fd, "w+"); if (!s.f) { ast_log(LOG_WARNING, "HTTP Manager, fdopen failed: %s!\n", strerror(errno)); - ast_http_error(ser, 500, "Server Error", "Internal Server Error (fdopen failed)\n"); + ast_http_error(ser, 500, "Server Error", "Internal Server Error (fdopen failed)"); close(s.fd); goto auth_callback_out; } @@ -7321,7 +7321,7 @@ static int auth_http_callback(struct ast_tcptls_session_instance *ser, out = ast_str_create(result_size * 2 + 512); if (http_header == NULL || out == NULL) { ast_http_request_close_on_completion(ser); - ast_http_error(ser, 500, "Server Error", "Internal Server Error (ast_str_create() out of memory)\n"); + ast_http_error(ser, 500, "Server Error", "Internal Server Error (ast_str_create() out of memory)"); close_mansession_file(&s); goto auth_callback_out; } diff --git a/res/ari/resource_channels.c b/res/ari/resource_channels.c index 647344303064175032ea8bdc3ff33d30a8678d25..6cc00ce418ba55dbc82be7eddc92485577527e48 100644 --- a/res/ari/resource_channels.c +++ b/res/ari/resource_channels.c @@ -790,7 +790,7 @@ static void ari_channels_handle_originate_with_id(const char *args_endpoint, if ((assignedids.uniqueid && AST_MAX_PUBLIC_UNIQUEID < strlen(assignedids.uniqueid)) || (assignedids.uniqueid2 && AST_MAX_PUBLIC_UNIQUEID < strlen(assignedids.uniqueid2))) { ast_ari_response_error(response, 400, "Bad Request", - "Uniqueid length exceeds maximum of %d\n", AST_MAX_PUBLIC_UNIQUEID); + "Uniqueid length exceeds maximum of %d", AST_MAX_PUBLIC_UNIQUEID); return; } diff --git a/res/res_ari.c b/res/res_ari.c index 0d80babbb2fc5e638dd57715b08f3a9f0d1b5fa9..2b6cb231bbf106f30d8a9423b2379b77a7b8f141 100644 --- a/res/res_ari.c +++ b/res/res_ari.c @@ -860,22 +860,27 @@ static int ast_ari_callback(struct ast_tcptls_session_instance *ser, RAII_VAR(struct ast_str *, response_body, ast_str_create(256), ast_free); RAII_VAR(struct ast_ari_conf_user *, user, NULL, ao2_cleanup); struct ast_ari_response response = {}; - int ret = 0; RAII_VAR(struct ast_variable *, post_vars, NULL, ast_variables_destroy); if (!response_body) { - return -1; + ast_http_request_close_on_completion(ser); + ast_http_error(ser, 500, "Server Error", "Out of memory"); + return 0; } response.headers = ast_str_create(40); if (!response.headers) { - return -1; + ast_http_request_close_on_completion(ser); + ast_http_error(ser, 500, "Server Error", "Out of memory"); + return 0; } conf = ast_ari_config_get(); if (!conf || !conf->general) { ast_free(response.headers); - return -1; + ast_http_request_close_on_completion(ser); + ast_http_error(ser, 500, "Server Error", "URI handler config missing"); + return 0; } process_cors_request(headers, &response); @@ -893,9 +898,10 @@ static int ast_ari_callback(struct ast_tcptls_session_instance *ser, "Request body too large"); goto request_failed; case ENOMEM: + ast_http_request_close_on_completion(ser); ast_ari_response_error(&response, 500, "Internal Server Error", - "Error processing request"); + "Out of memory"); goto request_failed; case EIO: ast_ari_response_error(&response, 400, @@ -940,6 +946,7 @@ static int ast_ari_callback(struct ast_tcptls_session_instance *ser, "WWW-Authenticate: Basic realm=\"%s\"\r\n", conf->general->auth_realm); } else if (!ast_fully_booted) { + ast_http_request_close_on_completion(ser); ast_ari_response_error(&response, 503, "Service Unavailable", "Asterisk not booted"); } else if (user->read_only && method != AST_HTTP_GET && method != AST_HTTP_OPTIONS) { ast_ari_response_error(&response, 403, "Forbidden", "Write access denied"); @@ -986,7 +993,6 @@ request_failed: response.response_text = "Internal Server Error"; ast_str_set(&response_body, 0, "%s", ""); ast_str_set(&response.headers, 0, "%s", ""); - ret = -1; } } @@ -999,7 +1005,7 @@ request_failed: response_body = NULL; ast_json_unref(response.message); - return ret; + return 0; } static struct ast_http_uri http_uri = {