rem: trim(&(*_w)->dialog.callid); trim(&(*_w)->dialog.from_tag); trim(&(*_w)->dialog.to);
context: int new_watcher(str* _from, str* _c, time_t _e, doctype_t _a, watcher_t** _w, str* callid, str* from_tag, str* to){	*_w = (watcher_t*)shm_malloc(sizeof(watcher_t));	if (!(*_w)) {		paerrno = PA_NO_MEMORY;	        LOG(L_ERR, "new_watcher(): No memory left\n");		return -1;	}	(*_w)->from.s = (char*)shm_malloc(_from->len);	if ((*_w)->from.s == 0) {		paerrno = PA_NO_MEMORY;		LOG(L_ERR, "new_watcher(): No memory left 2\n");		shm_free(*_w);		return -2;	}	memcpy((*_w)->from.s, _from->s, _from->len);	(*_w)->from.len = _from->len;	(*_w)->contact.s = (char*)shm_malloc(_c->len);	if ((*_w)->contact.s == 0) {		paerrno = PA_NO_MEMORY;		LOG(L_ERR, "new_watcher(): No memory left\n");		shm_free((*_w)->from.s);		shm_free(*_w);		return -3;	}	memcpy((*_w)->contact.s, _c->s, _c->len);	(*_w)->contact.len = _c->len;	(*_w)->expires = _e;	(*_w)->next = 0;	(*_w)->accept = _a;	(*_w)->dialog.callid.s = (char*)shm_malloc(callid->len);	memcpy((*_w)->dialog.callid.s, callid->s, callid->len);	(*_w)->dialog.callid.len = callid->len;	(*_w)->dialog.from_tag.s = (char*)shm_malloc(from_tag->len);	memcpy((*_w)->dialog.from_tag.s, from_tag->s, from_tag->len);	(*_w)->dialog.from_tag.len = from_tag->len;		(*_w)->dialog.to.s = (char*)shm_malloc(to->len);	memcpy((*_w)->dialog.to.s, to->s, to->len);	(*_w)->dialog.to.len = to->len;	(*_w)->dialog.cseq = 1;	trim(&(*_w)->dialog.callid);	trim(&(*_w)->dialog.from_tag);	trim(&(*_w)->dialog.to);	return 0;}