diff options
| -rw-r--r-- | CHANGES | 2 | ||||
| -rw-r--r-- | emu/Nt/devfs.c | 23 | ||||
| -rw-r--r-- | include/version.h | 2 | ||||
| -rw-r--r-- | utils/rcsh/simple.c | 2 |
4 files changed, 13 insertions, 16 deletions
@@ -1,3 +1,5 @@ +20080907 + include some changes from acme-sac in emu/Nt/devfs.c; need further control of usesec (or discard it) 20080723 rename Inferno's yacc to iyacc to avoid clash with system's own (now that Linux and others distribute it) 20080707 diff --git a/emu/Nt/devfs.c b/emu/Nt/devfs.c index f5185799..89d52e83 100644 --- a/emu/Nt/devfs.c +++ b/emu/Nt/devfs.c @@ -415,7 +415,8 @@ fsattach(char *spec) strcpy(s, spec); FS(c)->spec = s; FS(c)->srv = filesrv(spec); - FS(c)->usesec = fsacls(spec); + if(usesec) + FS(c)->usesec = fsacls(spec); FS(c)->checksec = FS(c)->usesec && isserver; c->qid.path = fsqidpath(spec); c->qid.type = QTDIR; @@ -2067,7 +2068,7 @@ sidtouser(Rune *srv, SID *s) ndname = sizeof(dname); if(!LookupAccountSidW(srv, s, aname, &naname, dname, &ndname, &type)) - return mkuser(s, SidTypeUnknown, L"unknown", L"unknown") ; /* was return nil; */ + return mkuser(s, SidTypeUnknown, L"unknown", L"unknown"); return mkuser(s, type, aname, dname); } @@ -2244,14 +2245,11 @@ addgroups(User *u, int force) return; u->gotgroup = 1; - rem = 1; n = 0; srv = domsrv(u->dom, srvrock); - while(rem != n){ - i = net.UserGetGroups(srv, u->name, 0, - (BYTE**)&grp, 1024, &n, &rem); - if(i != NERR_Success && i != ERROR_MORE_DATA) - break; + i = net.UserGetGroups(srv, u->name, 0, + (BYTE**)&grp, MAX_PREFERRED_LENGTH, &n, &rem); + if(i == NERR_Success || i == ERROR_MORE_DATA){ for(i = 0; i < n; i++){ gu = domnametouser(srv, grp[i].grui0_name, u->dom); if(gu == 0) @@ -2266,13 +2264,10 @@ addgroups(User *u, int force) net.ApiBufferFree(grp); } - rem = 1; n = 0; - while(rem != n){ - i = net.UserGetLocalGroups(srv, u->name, 0, LG_INCLUDE_INDIRECT, - (BYTE**)&loc, 1024, &n, &rem); - if(i != NERR_Success && i != ERROR_MORE_DATA) - break; + i = net.UserGetLocalGroups(srv, u->name, 0, LG_INCLUDE_INDIRECT, + (BYTE**)&loc, MAX_PREFERRED_LENGTH, &n, &rem); + if(i == NERR_Success || i == ERROR_MORE_DATA){ for(i = 0; i < n; i++){ gu = domnametouser(srv, loc[i].lgrui0_name, u->dom); if(gu == NULL) diff --git a/include/version.h b/include/version.h index ba4484e4..1067d8c8 100644 --- a/include/version.h +++ b/include/version.h @@ -1 +1 @@ -#define VERSION "Fourth Edition (20080802)" +#define VERSION "Fourth Edition (20080907)" diff --git a/utils/rcsh/simple.c b/utils/rcsh/simple.c index 1c3a89b3..bd67bc58 100644 --- a/utils/rcsh/simple.c +++ b/utils/rcsh/simple.c @@ -195,7 +195,7 @@ execfunc(Var *func) starval=runq->argv->words; runq->argv->words=0; poplist(); - start(func->fn, func->pc, 0); + start(func->fn, func->pc, runq->local); runq->local=newvar(strdup("*"), runq->local); runq->local->val=starval; runq->local->changed=1; |
