summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJohn Kohl <jtkohl@mit.edu>1990-04-20 15:02:33 +0000
committerJohn Kohl <jtkohl@mit.edu>1990-04-20 15:02:33 +0000
commit8f899ae65cb7038b0b1af24a4aff83a8f3dc9f64 (patch)
treeae9b0922082d0d2aa0dbe61271e3a415b9be6ca0 /src
parent5349f1db8dfa9b8f28b5d11b1a821ea6e6fd7d63 (diff)
downloadkrb5-8f899ae65cb7038b0b1af24a4aff83a8f3dc9f64.tar.gz
krb5-8f899ae65cb7038b0b1af24a4aff83a8f3dc9f64.tar.xz
krb5-8f899ae65cb7038b0b1af24a4aff83a8f3dc9f64.zip
add a line to the prose description
dbm_close() after examining response add KRB5_LNAME_BADFORMAT if not null-terminated. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@542 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/krb5/os/an_to_ln.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/krb5/os/an_to_ln.c b/src/lib/krb5/os/an_to_ln.c
index d8fc2b333..be822395a 100644
--- a/src/lib/krb5/os/an_to_ln.c
+++ b/src/lib/krb5/os/an_to_ln.c
@@ -42,6 +42,7 @@ static char rcsid_an_to_ln_c[] =
lnsize specifies the maximum length name that is to be filled into
lname.
+ The translation will be null terminated in all non-error returns.
returns system errors, NOT_ENOUGH_SPACE
*/
@@ -82,17 +83,20 @@ char *lname;
contents = dbm_fetch(db, key);
xfree(princ_name);
- (void) dbm_close(db);
if (contents.dptr == NULL) {
retval = KRB5_LNAME_NOTRANS;
} else {
strncpy(lname, contents.dptr, lnsize);
- if (lnsize < contents.dsize-1) /* -1 for the null */
+ if (lnsize < contents.dsize)
retval = KRB5_CONFIG_NOTENUFSPACE;
+ else if (lname[contents.dsize-1] != '\0')
+ retval = KRB5_LNAME_BADFORMAT;
else
retval = 0;
}
+ /* can't close until we copy the contents. */
+ (void) dbm_close(db);
return retval;
}
#else