add: error_mem: LOG(L_CRIT, "ERROR: cfg: memory allocation error\n"); ret=CFG_MEM_ERR; goto error;
context: int cfg_addpair(struct cfg_line* cl, void* callback){	int ret;	str* s1;	str* s2;			s1=0;	s2=0;	if ((cl->token_no<1)||(cl->token_no>2)){		LOG(L_CRIT, "ERROR: cfg: invalid number of "					"parameters for peer\n");		ret=CFG_PARAM_ERR;		goto error;	}	s1=shm_malloc(sizeof(str));	if (s1==0) goto error_mem;	s2=shm_malloc(sizeof(str));	if (s2==0) goto error_mem;	memset(s2, 0, sizeof(str));		ret=cfg_getstr(cl->value[0], s1);	if (ret!=0) goto error;	if (cl->token_no==2){		ret=cfg_getstr(cl->value[1], s2);		if (ret!=0) goto error;;	}	if (((int (*)(str*, str*))(callback))(s1, s2)!=0){		LOG(L_CRIT, "ERROR: cfg: error adding peer\n");		ret=CFG_RUN_ERR;		goto error;	}		return CFG_OK;error_mem:	LOG(L_CRIT, "ERROR: cfg: memory allocation error\n");	ret=CFG_MEM_ERR;error:	if (s1) shm_free(s1);	if (s2) shm_free(s2);	return ret;}