summaryrefslogtreecommitdiffstats
path: root/src/lib/kadm5/srv
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2000-06-27 21:00:02 +0000
committerKen Raeburn <raeburn@mit.edu>2000-06-27 21:00:02 +0000
commit9fe2a01ec0fefa8b764bb6e9d7f9a09d11fed7ff (patch)
tree2d4fd8b1bf6272f1286ffb7af9ae1d351a347e71 /src/lib/kadm5/srv
parent0d54ee19a3e5a159f0b86097ebfe193a0d9c26d8 (diff)
pullup from 1.2 branch
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12442 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/kadm5/srv')
-rw-r--r--src/lib/kadm5/srv/ChangeLog8
-rw-r--r--src/lib/kadm5/srv/adb_openclose.c15
-rw-r--r--src/lib/kadm5/srv/svr_chpass_util.c5
3 files changed, 19 insertions, 9 deletions
diff --git a/src/lib/kadm5/srv/ChangeLog b/src/lib/kadm5/srv/ChangeLog
index 1864a733f..d39760428 100644
--- a/src/lib/kadm5/srv/ChangeLog
+++ b/src/lib/kadm5/srv/ChangeLog
@@ -1,3 +1,11 @@
+2000-06-23 Nalin Dahyabhai <nalin@redhat.com>
+
+ * adb_openclose.c (osa_adb_create_db): Open lock files using O_EXCL
+ and fdopen() the descriptor instead of using fopen().
+ * svr_chpass_util.c (kadm5_chpass_principal_util): Adjust for new
+ length parameter in both kadm5_chpass_principal_util() and in
+ _kadm5_chpass_principal_util().
+
2000-05-31 Wilfredo Sanchez <tritan@mit.edu>
* adb_free.c, adb_xdr.c, server_dict.c: Check for existance
diff --git a/src/lib/kadm5/srv/adb_openclose.c b/src/lib/kadm5/srv/adb_openclose.c
index e776192c2..2a9bba8f6 100644
--- a/src/lib/kadm5/srv/adb_openclose.c
+++ b/src/lib/kadm5/srv/adb_openclose.c
@@ -24,7 +24,7 @@ struct _locklist {
osa_adb_ret_t osa_adb_create_db(char *filename, char *lockfilename,
int magic)
{
- FILE *lf;
+ int lf;
DB *db;
HASHINFO info;
@@ -41,10 +41,10 @@ osa_adb_ret_t osa_adb_create_db(char *filename, char *lockfilename,
return errno;
/* only create the lock file if we successfully created the db */
- lf = fopen(lockfilename, "w+");
- if (lf == NULL)
+ lf = THREEPARAMOPEN(lockfilename, O_RDWR | O_CREAT | O_EXCL, 0600);
+ if (lf == -1)
return errno;
- (void) fclose(lf);
+ (void) close(lf);
return OSA_ADB_OK;
}
@@ -333,7 +333,7 @@ osa_adb_ret_t osa_adb_get_lock(osa_adb_db_t db, int mode)
osa_adb_ret_t osa_adb_release_lock(osa_adb_db_t db)
{
- int ret;
+ int ret, fd;
if (!db->lock->lockcnt) /* lock already unlocked */
return OSA_ADB_NOTLOCKED;
@@ -341,8 +341,9 @@ osa_adb_ret_t osa_adb_release_lock(osa_adb_db_t db)
if (--db->lock->lockcnt == 0) {
if (db->lock->lockmode == OSA_ADB_PERMANENT) {
/* now we need to create the file since it does not exist */
- if ((db->lock->lockfile = fopen(db->lock->filename,
- "w+")) == NULL)
+ fd = THREEPARAMOPEN(db->lock->filename,O_RDWR | O_CREAT | O_EXCL,
+ 0600);
+ if ((db->lock->lockfile = fdopen(fd, "w+")) == NULL)
return OSA_ADB_NOLOCKFILE;
} else if (ret = krb5_lock_file(db->lock->context,
fileno(db->lock->lockfile),
diff --git a/src/lib/kadm5/srv/svr_chpass_util.c b/src/lib/kadm5/srv/svr_chpass_util.c
index df2bf4c47..4c4c6bbe6 100644
--- a/src/lib/kadm5/srv/svr_chpass_util.c
+++ b/src/lib/kadm5/srv/svr_chpass_util.c
@@ -5,11 +5,12 @@ kadm5_ret_t kadm5_chpass_principal_util(void *server_handle,
krb5_principal princ,
char *new_pw,
char **ret_pw,
- char *msg_ret)
+ char *msg_ret,
+ int msg_len)
{
kadm5_server_handle_t handle = server_handle;
CHECK_HANDLE(server_handle);
return _kadm5_chpass_principal_util(handle, handle->lhandle, princ,
- new_pw, ret_pw, msg_ret);
+ new_pw, ret_pw, msg_ret, msg_len);
}