~kris/9p

9hist

0eae421c3be7b280d9d1e1e78dfc88b9b04bdaae — David du Colombier 27 years ago d64de1f
Plan 9 from Bell Labs 1999-07-18
3 files changed, 8 insertions(+), 7 deletions(-)

M port/chan.c
M port/portfns.h
M port/sysfile.c
M port/chan.c => port/chan.c +4 -3
@@ 865,7 865,7 @@ namec(char *name, int amode, int omode, ulong perm)
			cclose(cc);
			nexterror();
		}
		nameok(elem);
		nameok(elem, 0);
		if(walk(&cc, elem, 1) == 0){
			poperror();
			cclose(c);


@@ 949,14 949,15 @@ char isfrog[256]={
};

void
nameok(char *elem)
nameok(char *elem, int slashok)
{
	char *eelem;

	eelem = elem+NAMELEN;
	while(*elem) {
		if(isfrog[*(uchar*)elem])
			error(Ebadchar);
			if(!slashok || *elem!='/')
				error(Ebadchar);
		elem++;
		if(elem >= eelem)
			error(Efilename);

M port/portfns.h => port/portfns.h +1 -1
@@ 169,7 169,7 @@ long		mntwrite9p(Chan*, void*, long, vlong);
void		mountfree(Mount*);
ulong		msize(void*);
Chan*		namec(char*, int, int, ulong);
void		nameok(char*);
void		nameok(char*, int);
#define		nelem(x)	(sizeof(x)/sizeof(x[0]))
Chan*		newchan(void);
Mount*		newmount(Mhead*, Chan*, int, char*);

M port/sysfile.c => port/sysfile.c +3 -3
@@ 624,7 624,7 @@ bindmount(ulong *arg, int ismount)
		bogus.spec = (char*)arg[3];
		if(waserror())
			error(Ebadspec);
		nameok(bogus.spec);
		nameok(bogus.spec, 1);
		poperror();

		ret = devno('M', 0);


@@ 757,7 757,7 @@ syswstat(ulong *arg)
	Chan *c;

	validaddr(arg[1], DIRLEN, 0);
	nameok((char*)arg[1]);
	nameok((char*)arg[1], 0);
	validaddr(arg[0], 1, 0);
	c = namec((char*)arg[0], Aaccess, 0, 0);
	if(waserror()){


@@ 776,7 776,7 @@ sysfwstat(ulong *arg)
	Chan *c;

	validaddr(arg[1], DIRLEN, 0);
	nameok((char*)arg[1]);
	nameok((char*)arg[1], 0);
	c = fdtochan(arg[0], -1, 1, 1);
	if(waserror()) {
		cclose(c);