diff options
| author | John Kohl <jtkohl@mit.edu> | 1990-04-20 15:02:33 +0000 |
|---|---|---|
| committer | John Kohl <jtkohl@mit.edu> | 1990-04-20 15:02:33 +0000 |
| commit | 8f899ae65cb7038b0b1af24a4aff83a8f3dc9f64 (patch) | |
| tree | ae9b0922082d0d2aa0dbe61271e3a415b9be6ca0 /src | |
| parent | 5349f1db8dfa9b8f28b5d11b1a821ea6e6fd7d63 (diff) | |
| download | krb5-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.c | 8 |
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 |
