aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Allbery <rra@stanford.edu>2013-02-27 14:21:48 -0800
committerRuss Allbery <rra@stanford.edu>2013-02-27 16:52:13 -0800
commit7a572127a7305a17bf84c26e66e65ab37f66b77d (patch)
tree60d9763a420a67f7c28a60b03e6665a03d2b18ee
parent54715c37f1649b88d52806e1ad4b30e32c6f816e (diff)
Check for errors when renaming new keytab
When linking the temporary keytab to its final file name, wallet wasn't checking for errors. Caught by the new gcc warnings. Change-Id: Ia75b231754bafc800e9e521345b85da256c95ed1 Reviewed-on: https://gerrit.stanford.edu/840 Reviewed-by: Russ Allbery <rra@stanford.edu> Tested-by: Russ Allbery <rra@stanford.edu>
-rw-r--r--client/keytab.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/client/keytab.c b/client/keytab.c
index 9a7734e..6614c4b 100644
--- a/client/keytab.c
+++ b/client/keytab.c
@@ -252,9 +252,11 @@ rekey_keytab(struct remctl *r, krb5_context ctx, const char *type,
* keys. If there is an error, first make a backup of the current keytab
* file as keytab.old.
*/
- if (access(file, F_OK) != 0)
- link(tempfile, file);
- else {
+ if (access(file, F_OK) != 0) {
+ if (link(tempfile, file) < 0)
+ sysdie("rename of temporary keytab %s to %s failed", tempfile,
+ file);
+ } else {
if (error) {
data = read_file(file, &length);
backupfile = concat(file, ".old", (char *) 0);