Bläddra i källkod

Improved Free at cscf_get_service_route(), caused a reproducable crash

Carsten Bock 11 år sedan
förälder
incheckning
caa9954d3c
1 ändrade filer med 4 tillägg och 2 borttagningar
  1. 4 2
      lib/ims/ims_getters.c

+ 4 - 2
lib/ims/ims_getters.c

@@ -1361,14 +1361,16 @@ str* cscf_get_service_route(struct sip_msg *msg, int *size, int is_shm) {
 		h = h->next;
 		h = h->next;
 	}
 	}
 	if (is_shm) {
 	if (is_shm) {
-		while (h)
+		h = msg->headers;
+		while (h) {
 			if (h->name.len == 13
 			if (h->name.len == 13
 					&& strncasecmp(h->name.s, "Service-Route", 13) == 0) {
 					&& strncasecmp(h->name.s, "Service-Route", 13) == 0) {
 				h->parsed = 0;
 				h->parsed = 0;
 				r = (rr_t*) h->parsed;
 				r = (rr_t*) h->parsed;
 				free_rr(&r);
 				free_rr(&r);
 			}
 			}
-		h = h->next;
+			h = h->next;
+		}
 	}
 	}
 
 
 	return x;
 	return x;