rem: if ((l=del_lump(&msg->add_rm, rpl->offset+off, rpl->size, 0))==0)
add: if ((l=del_lump(msg, rpl->offset+off, rpl->size, 0))==0)
context: static int subst_f(struct sip_msg* msg, char*  subst, char* ignored){	struct lump* l;	struct replace_lst* lst;	struct replace_lst* rpl;	char* begin;	struct subst_expr* se;	int off;	int ret;		se=(struct subst_expr*)subst;	begin=get_header(msg);  /* start after first line to avoid replacing							   the uri */	off=begin-msg->buf;	ret=-1;	if ((lst=subst_run(se, begin, msg))==0) goto error; /* not found */	for (rpl=lst; rpl; rpl=rpl->next){		DBG(" %s: subst_f: replacing at offset %d [%.*s] with [%.*s]\n",				exports.name, rpl->offset+off,				rpl->size, rpl->offset+off+msg->buf,				rpl->rpl.len, rpl->rpl.s);		if ((l=del_lump(&msg->add_rm, rpl->offset+off, rpl->size, 0))==0)			goto error;		/* hack to avoid re-copying rpl, possible because both 		 * replace_lst & lumps use pkg_malloc */		if (insert_new_lump_after(l, rpl->rpl.s, rpl->rpl.len, 0)==0){			LOG(L_ERR, "ERROR: %s: subst_f: could not insert new lump\n",					exports.name);			goto error;		}		/* hack continued: set rpl.s to 0 so that replace_lst_free will		 * not free it */		rpl->rpl.s=0;		rpl->rpl.len=0;	}	ret=1;error:	DBG("subst_f: lst was %p\n", lst);	if (lst) replace_lst_free(lst);	return ret;}