diff options
author | ppatience0 <ppatience0@gmail.com> | 2013-02-17 09:55:03 -0500 |
---|---|---|
committer | ppatience0 <ppatience0@gmail.com> | 2013-02-17 09:55:03 -0500 |
commit | 4aae319f76dd7157149aad6a67c3ca9b03a7f30a (patch) | |
tree | 1a5e14a3b93c42365a00663381a1af589942a6cb /sys/src/cmd/auth/lib | |
parent | cb25ae9fe60a49ab67d8c5708cbbc65f3591b4a1 (diff) |
rdbio: fix bug where a->user never gets set if Bopen fails.
Diffstat (limited to 'sys/src/cmd/auth/lib')
-rw-r--r-- | sys/src/cmd/auth/lib/rdbio.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/sys/src/cmd/auth/lib/rdbio.c b/sys/src/cmd/auth/lib/rdbio.c index 7363e4284..34196fd36 100644 --- a/sys/src/cmd/auth/lib/rdbio.c +++ b/sys/src/cmd/auth/lib/rdbio.c @@ -33,26 +33,26 @@ rdbio(char *file, char *user, Acctbio *a) memset(a, 0, sizeof(Acctbio)); b = Bopen(file, OREAD); - if(b == 0) - return; - while(p = Brdline(b, '\n')){ - p[Blinelen(b)-1] = 0; - n = getfields(p, field, nelem(field), 0, "|"); - if(n < 4) - continue; - if(strcmp(field[0], user) != 0) - continue; + if(b != 0){ + while(p = Brdline(b, '\n')){ + p[Blinelen(b)-1] = 0; + n = getfields(p, field, nelem(field), 0, "|"); + if(n < 4) + continue; + if(strcmp(field[0], user) != 0) + continue; - clrbio(a); + clrbio(a); - a->postid = strdup(field[1]); - a->name = strdup(field[2]); - a->dept = strdup(field[3]); - if(n-4 >= Nemail) - n = Nemail-4; - for(i = 4; i < n; i++) - a->email[i-4] = strdup(field[i]); + a->postid = strdup(field[1]); + a->name = strdup(field[2]); + a->dept = strdup(field[3]); + if(n-4 >= Nemail) + n = Nemail-4; + for(i = 4; i < n; i++) + a->email[i-4] = strdup(field[i]); + } + Bterm(b); } a->user = strdup(user); - Bterm(b); } |