summaryrefslogtreecommitdiff
path: root/package/network/services/ead/src/tinysrp/tphrase.c
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/ead/src/tinysrp/tphrase.c')
-rw-r--r--package/network/services/ead/src/tinysrp/tphrase.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/package/network/services/ead/src/tinysrp/tphrase.c b/package/network/services/ead/src/tinysrp/tphrase.c
index 1aede0c..0ab1e08 100644
--- a/package/network/services/ead/src/tinysrp/tphrase.c
+++ b/package/network/services/ead/src/tinysrp/tphrase.c
@@ -62,7 +62,6 @@ void doit(char *name)
{
char passphrase[128], passphrase1[128];
FILE *f;
- struct t_conf *tc;
struct t_confent *tcent;
struct t_pw eps_passwd;
@@ -152,7 +151,8 @@ t_changepw(pwname, diff)
if((bakfp = fopen(bakfile2, "wb")) == NULL &&
(unlink(bakfile2) < 0 || (bakfp = fopen(bakfile2, "wb")) == NULL)) {
fclose(passfp);
- fclose(bakfp);
+ free(bakfile);
+ free(bakfile2);
return -1;
}
@@ -169,10 +169,16 @@ t_changepw(pwname, diff)
#ifdef USE_RENAME
unlink(bakfile);
- if(rename(pwname, bakfile) < 0)
+ if(rename(pwname, bakfile) < 0) {
+ free(bakfile);
+ free(bakfile2);
return -1;
- if(rename(bakfile2, pwname) < 0)
+ }
+ if(rename(bakfile2, pwname) < 0) {
+ free(bakfile);
+ free(bakfile2);
return -1;
+ }
#else
unlink(bakfile);
link(pwname, bakfile);