int len = strlen(srcstring);
len = strlen(srcstring);
decodeNVpair(const char *srcstring, char separator, char **name, char **value){	FNIN();	int lpc = 0;	const char *temp = NULL;	CRM_DEBUG2("Attempting to decode: [%s]", srcstring);	if (srcstring != NULL) {		int len = strlen(srcstring);		while(lpc < len) {			if (srcstring[lpc++] == separator) {				*name = (char*)cl_malloc(sizeof(char)*lpc);				CRM_DEBUG2("Malloc ok %d", lpc);				strncpy(*name, srcstring, lpc-1);				CRM_DEBUG2("Strcpy ok %d", lpc-1);				(*name)[lpc-1] = '\0';				CRM_DEBUG2("Found token [%s]", *name);				// this sucks but as the strtok *is* a bug				len = len-lpc+1;				*value = (char*)cl_malloc(sizeof(char)*len);				CRM_DEBUG2("Malloc ok %d", len);				temp = srcstring+lpc;				CRM_DEBUG("Doing str copy");				strncpy(*value, temp, len-1);				(*value)[len-1] = '\0';				CRM_DEBUG2("Found token [%s]", *value);				FNRET(TRUE);			}		}	}	*name = NULL;	*value = NULL;    	FNRET(FALSE);}