strncat(dir, uml_dir, sizeof(dir) - len); len = strlen(dir); if((len > 0) && (len < sizeof(dir) - 1) && (dir[len - 1] != '/')){ dir[len] = '/'; dir[len + 1] = '\0'; } 
if (len > 0 && dir[len - 1] != '/') strlcat(dir, "/", sizeof(dir)); 
static int __init make_uml_dir(void){	char dir[MAXPATHLEN + 1] = { '\0' };	int len;	if(*uml_dir == '~'){		char *home = getenv("HOME");		if(home == NULL){			printf("make_uml_dir : no value in environment for "			       "$HOME\n");			exit(1);		}		strlcpy(dir, home, sizeof(dir));		uml_dir++;	}	len = strlen(dir);	strncat(dir, uml_dir, sizeof(dir) - len);	len = strlen(dir);	if((len > 0) && (len < sizeof(dir) - 1) && (dir[len - 1] != '/')){		dir[len] = '/';		dir[len + 1] = '\0';	}	uml_dir = malloc(strlen(dir) + 1);	if(uml_dir == NULL){		printf("make_uml_dir : malloc failed, errno = %d\n", errno);		exit(1);	}	strcpy(uml_dir, dir);		if((mkdir(uml_dir, 0777) < 0) && (errno != EEXIST)){	        printf("Failed to mkdir %s: %s\n", uml_dir, strerror(errno));		return(-1);	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/a8bfb94c58238666df0d6856861d18f0f52fc752/umid.c/clean/arch/um/kernel/umid.c