Bläddra i källkod

rtpengine: get again body pointer only when read_sdp_pv is set

- reported by GH #1434
Daniel-Constantin Mierla 7 år sedan
förälder
incheckning
75c4ca0bb6
1 ändrade filer med 11 tillägg och 6 borttagningar
  1. 11 6
      src/modules/rtpengine/rtpengine.c

+ 11 - 6
src/modules/rtpengine/rtpengine.c

@@ -3351,12 +3351,17 @@ rtpengine_offer_answer(struct sip_msg *msg, const char *flags, int op, int more)
 			pkg_free(newbody.s);
 
 		} else {
-			/* get the body from the message as body ptr may have changed */
-			cur_body.len = 0;
-			cur_body.s = get_body(msg);
-			cur_body.len = msg->buf + msg->len - cur_body.s;
-
-			anchor = del_lump(msg, cur_body.s - msg->buf, cur_body.len, 0);
+			if (read_sdp_pvar_str.len > 0) {
+				/* get the body from the message as body ptr may have changed
+				 * when using read_sdp_pv */
+				cur_body.len = 0;
+				cur_body.s = get_body(msg);
+				cur_body.len = msg->buf + msg->len - cur_body.s;
+
+				anchor = del_lump(msg, cur_body.s - msg->buf, cur_body.len, 0);
+			} else {
+				anchor = del_lump(msg, body.s - msg->buf, body.len, 0);
+			}
 			if (!anchor) {
 				LM_ERR("del_lump failed\n");
 				goto error_free;