aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-04-25 03:00:29 -0400
committerJeff Garzik <jeff@garzik.org>2006-04-25 03:00:29 -0400
commit0340f74caa84a3843246d252ab64e3e802d14e20 (patch)
tree4196fe775d027040694527507234255b970caaca
parent4158bad935569acb91d0eb68923bb155ee9e16f5 (diff)
downloaddbfs-0340f74caa84a3843246d252ab64e3e802d14e20.tar.gz
Password-related bug fixes.
-rw-r--r--dbfs.h2
-rw-r--r--libdbfs.c8
2 files changed, 6 insertions, 4 deletions
diff --git a/dbfs.h b/dbfs.h
index b38ad11..02f7342 100644
--- a/dbfs.h
+++ b/dbfs.h
@@ -65,7 +65,7 @@ struct dbfs_inode {
struct dbfs {
const char *home;
- const char *passwd;
+ char *passwd;
DB_ENV *env;
DB *meta;
diff --git a/libdbfs.c b/libdbfs.c
index d0eb239..1c28f03 100644
--- a/libdbfs.c
+++ b/libdbfs.c
@@ -46,9 +46,9 @@ int dbfs_open(struct dbfs *fs)
goto err_out;
}
- /* this isn't a very good way to shroud the password */
- if (putenv("DB_PASSWORD=X"))
- perror("putenv (SECURITY WARNING)");
+ memset(fs->passwd, 0, strlen(fs->passwd));
+ free(fs->passwd);
+ fs->passwd = NULL;
}
/* init DB transactional environment, stored in directory db_home */
@@ -131,6 +131,8 @@ struct dbfs *dbfs_new(void)
passwd = getenv("DB_PASSWORD");
if (passwd) {
fs->passwd = strdup(passwd);
+
+ /* this isn't a very good way to shroud the password */
if (putenv("DB_PASSWORD=X"))
perror("putenv DB_PASSWORD (SECURITY WARNING)");
}