while(lpc < len) { 
while(lpc <= len) { 
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;}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/04f321096ed825459d2ebe781c0170e7f9971dc1/utils.c/buggy/crm/common/utils.c