From 4aae319f76dd7157149aad6a67c3ca9b03a7f30a Mon Sep 17 00:00:00 2001 From: ppatience0 Date: Sun, 17 Feb 2013 09:55:03 -0500 Subject: rdbio: fix bug where a->user never gets set if Bopen fails. --- sys/src/cmd/auth/lib/rdbio.c | 36 ++++++++++++++++++------------------ 1 file 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); } -- cgit v1.2.3