aboutsummaryrefslogtreecommitdiffstats
path: root/src/controller.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-01-15 20:23:35 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2017-01-15 20:23:35 +0000
commit0e270dbe709e743ec840999c05e35f4d63be69b4 (patch)
tree810753d3258d55c35efc599f279d560accb6fe40 /src/controller.c
parente0446369d13269d07cecb5711fbab7d7bc64398a (diff)
downloadrspamd-0e270dbe709e743ec840999c05e35f4d63be69b4.tar.gz
rspamd-0e270dbe709e743ec840999c05e35f4d63be69b4.zip
[Fix] Fix couple of issues
Found by: Coverity
Diffstat (limited to 'src/controller.c')
-rw-r--r--src/controller.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/controller.c b/src/controller.c
index 25eb54db8..48c89c408 100644
--- a/src/controller.c
+++ b/src/controller.c
@@ -1276,7 +1276,7 @@ rspamd_controller_handle_graph (
k = 0;
/* Create window */
- step = (rrd_result->rra_rows / desired_points + 0.5);
+ step = ceil (((gdouble)rrd_result->rra_rows) / desired_points);
g_assert (step >= 1);
acc = g_malloc0 (sizeof (double) * rrd_result->ds_count * step);
@@ -1996,15 +1996,22 @@ rspamd_controller_handle_saveactions (
}
parser = ucl_parser_new (0);
- ucl_parser_add_chunk (parser, msg->body_buf.begin, msg->body_buf.len);
+ if (!ucl_parser_add_chunk (parser, msg->body_buf.begin, msg->body_buf.len)) {
+ if ((error = ucl_parser_get_error (parser)) != NULL) {
+ msg_err_session ("cannot parse input: %s", error);
+ rspamd_controller_send_error (conn_ent, 400, "Cannot parse input");
+ ucl_parser_free (parser);
+ return 0;
+ }
- if ((error = ucl_parser_get_error (parser)) != NULL) {
- msg_err_session ("cannot parse input: %s", error);
+ msg_err_session ("cannot parse input: unknown error");
rspamd_controller_send_error (conn_ent, 400, "Cannot parse input");
ucl_parser_free (parser);
return 0;
}
+
+
obj = ucl_parser_get_object (parser);
ucl_parser_free (parser);
@@ -2110,10 +2117,15 @@ rspamd_controller_handle_savesymbols (
}
parser = ucl_parser_new (0);
- ucl_parser_add_chunk (parser, msg->body_buf.begin, msg->body_buf.len);
+ if (!ucl_parser_add_chunk (parser, msg->body_buf.begin, msg->body_buf.len)) {
+ if ((error = ucl_parser_get_error (parser)) != NULL) {
+ msg_err_session ("cannot parse input: %s", error);
+ rspamd_controller_send_error (conn_ent, 400, "Cannot parse input");
+ ucl_parser_free (parser);
+ return 0;
+ }
- if ((error = ucl_parser_get_error (parser)) != NULL) {
- msg_err_session ("cannot parse input: %s", error);
+ msg_err_session ("cannot parse input: unknown error");
rspamd_controller_send_error (conn_ent, 400, "Cannot parse input");
ucl_parser_free (parser);
return 0;