rem: tag_len = ptr->next->name.s - tag;
add: tag_len = ptr->value.s + ptr->value.len - tag;
context: static inline int get_dlg_uri(struct hdr_field* _h, str* _s){	struct to_param* ptr, *prev;	struct to_body* body;	char* tag = 0; /* Makes gcc happy */	int tag_len = 0, len;	if (!_h) {		LOG(L_ERR, "get_dlg_uri(): Header field not found\n");		return -1;	}	     /* From was already parsed when extracting tag	      * and To is parsed by default	      */		body = (struct to_body*)_h->parsed;	ptr = body->param_lst;	prev = 0;	while(ptr) {		if (ptr->type == TAG_PARAM) break;		prev = ptr;		ptr = ptr->next;	}	if (ptr) {		     /* Tag param found */		if (prev) {			tag = prev->value.s + prev->value.len;		} else {			tag = body->body.s + body->body.len;		}				if (ptr->next) {			tag_len = ptr->next->name.s - tag;		} else {			tag_len = _h->body.s + _h->body.len - tag;		}	}	_s->s = shm_malloc(_h->body.len - tag_len);	if (!_s->s) {		LOG(L_ERR, "get_dlg_uri(): No memory left\n");		return -1;	}	if (tag_len) {		len = tag - _h->body.s;		memcpy(_s->s, _h->body.s, len);		memcpy(_s->s + len, tag + tag_len, _h->body.len - len - tag_len);		_s->len = _h->body.len - tag_len;	} else {		memcpy(_s->s, _h->body.s, _h->body.len);		_s->len = _h->body.len;	}	return 0;}