ctrl: ctrl_handle_msg: Avoid sending back received ERROR msgs

Change-Id: I396fd1e7548beea31b2b7aa9f764edb765b02941
diff --git a/src/ctrl/control_if.c b/src/ctrl/control_if.c
index d3e6fac..5962f7e 100644
--- a/src/ctrl/control_if.c
+++ b/src/ctrl/control_if.c
@@ -384,6 +384,7 @@
 int ctrl_handle_msg(struct ctrl_handle *ctrl, struct ctrl_connection *ccon, struct msgb *msg)
 {
 	struct ctrl_cmd *cmd;
+	bool parse_failed;
 	struct ipaccess_head *iph;
 	struct ipaccess_head_ext *iph_ext;
 	int result;
@@ -407,7 +408,7 @@
 
 	msg->l2h = iph_ext->data;
 
-	cmd = ctrl_cmd_parse2(ccon, msg);
+	cmd = ctrl_cmd_parse3(ccon, msg, &parse_failed);
 
 	if (!cmd) {
 		/* should never happen */
@@ -421,7 +422,7 @@
 	}
 
 	/* In case of error, reply with the error message right away. */
-	if (cmd->type == CTRL_TYPE_ERROR)
+	if (cmd->type == CTRL_TYPE_ERROR && parse_failed)
 		goto send_reply;
 
 	cmd->ccon = ccon;