summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/cmd/auth/factotum/p9any.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/src/cmd/auth/factotum/p9any.c b/sys/src/cmd/auth/factotum/p9any.c
index 367f6b4d2..9bc0b467d 100644
--- a/sys/src/cmd/auth/factotum/p9any.c
+++ b/sys/src/cmd/auth/factotum/p9any.c
@@ -318,7 +318,7 @@ p9anywrite(Fsstate *fss, void *va, uint n)
ret = findkey(&k, &ki, "proto=%q dom=%q role=speakfor %s",
p->name, dom, p->keyprompt);
}
- if(ret == RpcFailure){
+ if(ret != RpcOk && ret != RpcConfirm){
ki.attr = anew;
ki.user = fss->sysuser;
ret = findkey(&k, &ki,
@@ -327,6 +327,8 @@ p9anywrite(Fsstate *fss, void *va, uint n)
}
if(ret == RpcConfirm){
free(a);
+ _freeattr(anew);
+ _freeattr(anewsf);
return ret;
}
if(ret == RpcOk)