Browse code

dialog: parse tm callback reply in early phase to detect broken format

(cherry picked from commit 6b9837c30f9d2a2ca937d7e6d8c1c496fe4d7d30)
(cherry picked from commit c2995f731ab3a94f302af63bdad9c3bf61d4e995)
(cherry picked from commit a9fb58a83ec8738a371d6be995d457b88e16a2f4)

Daniel-Constantin Mierla authored on 22/03/2019 03:17:23
Showing 1 changed files
... ...
@@ -435,6 +435,13 @@ static void dlg_onreply(struct cell* t, int type, struct tmcb_params *param)
435 435
 	if(dlg==0)
436 436
 		return;
437 437
 
438
+	if (rpl != FAKED_REPLY) {
439
+		if(parse_headers(rpl, HDR_EOH_F, 0) < 0) {
440
+			LM_ERR("failed to parse the reply headers\n");
441
+			goto done_early;
442
+		}
443
+	}
444
+
438 445
 	unref = 0;
439 446
 	if (type & (TMCB_RESPONSE_IN|TMCB_ON_FAILURE)) {
440 447
 		/* Set the dialog context so it is available in onreply_route and failure_route*/