*name = (char*)crm_malloc(sizeof(char)*lpc+1);
crm_malloc(*name, sizeof(char)*lpc+1); if(*name == NULL) { break;  }
decodeNVpair(const char *srcstring, char separator, char **name, char **value){	int lpc = 0;	int len = 0;	const char *temp = NULL;	crm_verbose("Attempting to decode: [%s]", srcstring);	if (srcstring != NULL) {		len = strlen(srcstring);		while(lpc <= len) {			if (srcstring[lpc] == separator			    || srcstring[lpc] == '\0') {				*name = (char*)crm_malloc(sizeof(char)*lpc+1);				strncpy(*name, srcstring, lpc);				(*name)[lpc] = '\0';/* this sucks but as the strtok manpage says.. it *is* a bug */				len = len-lpc;				len--;				if(len > 0) {					*value = (char*)crm_malloc(						sizeof(char)*len+1);					temp = srcstring+lpc+1;					strncpy(*value, temp, len);					(*value)[len] = '\0';				} else {					*value = NULL;				}				return TRUE;			}			lpc++;		}	}	*name = NULL;	*value = NULL;    	return FALSE;}