plan 9 kernel history: overview | file list | diff list

1991/1112/port/dev.c (diff list | history)

1991/1109/sys/src/9/port/dev.c:38,451991/1112/sys/src/9/port/dev.c:38,45 (short | long | prev | next)
Performance: replace memmove with strncpy. Compute access modes for permission.
rsc Fri Mar 4 12:44:25 2005
1990/0227    
	db->mtime = db->atime; 
	db->hlength = 0; 
	db->length = length; 
1991/0318    
	memmove(db->uid, user, NAMELEN); 
	memmove(db->gid, user, NAMELEN); 
1991/1112    
	strncpy(db->uid, user, NAMELEN); 
	strncpy(db->gid, eve, NAMELEN); 
1990/0227    
} 
 
int 
1991/1109/sys/src/9/port/dev.c:170,1751991/1112/sys/src/9/port/dev.c:170,176
1990/0227    
{ 
	int i; 
	Dir dir; 
1991/1112    
	ulong t, mode; 
1990/0227    
	static int access[] = { 0400, 0200, 0600, 0100 }; 
 
	for(i=0;; i++) 
1991/1109/sys/src/9/port/dev.c:180,1871991/1112/sys/src/9/port/dev.c:181,196
1990/0227    
		case 0: 
			break; 
		case 1: 
1990/11211    
			if(eqqid(c->qid, dir.qid)){ 
1990/0227    
				if((access[omode&3] & dir.mode) == access[omode&3]) 
1991/1112    
			if(eqqid(c->qid, dir.qid)) { 
				if(strcmp(u->p->user, dir.uid) == 0)	/* User */ 
					mode = dir.mode; 
				else if(strcmp(u->p->user, eve) == 0)	/* Bootes is group */ 
					mode = dir.mode<<3; 
				else 
					mode = dir.mode<<6;		/* Other */ 
 
				t = access[omode&3]; 
				if((t & mode) == t) 
1990/0227    
					goto Return; 
1990/11211    
				error(Eperm); 
1990/0227    
			} 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)