crm_verbose("Attempting to decode: [%s]", srcstring); 
crm_trace("Attempting to decode: [%s]", srcstring); 
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') {				crm_malloc(*name, sizeof(char)*lpc+1);				if(*name == NULL) {					break; /* and return FALSE */				}				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 = NULL;				} else {					crm_malloc(*value, sizeof(char)*len+1);					if(*value == NULL) {						crm_free(*name);						break; /* and return FALSE */					}					temp = srcstring+lpc+1;					strncpy(*value, temp, len);					(*value)[len] = '\0';				}				return TRUE;			}			lpc++;		}	}	*name = NULL;	*value = NULL;    	return FALSE;}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/d21dc3f75f27e3a3ce3e2622fae8e5b4374b2166/utils.c/buggy/crm/common/utils.c