summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2009-01-22 19:19:34 +0000
committerGreg Hudson <ghudson@mit.edu>2009-01-22 19:19:34 +0000
commit6422c0b5646f4f8e40108c167c50d7aea9abb6da (patch)
treeb53d29de48fac66c42d201d67d425b47f0b9eaed
parent997d82648527cf03c150c392231432c1c5dc97b2 (diff)
downloadkrb5-6422c0b5646f4f8e40108c167c50d7aea9abb6da.tar.gz
krb5-6422c0b5646f4f8e40108c167c50d7aea9abb6da.tar.xz
krb5-6422c0b5646f4f8e40108c167c50d7aea9abb6da.zip
Adapted patch from Apple: in kadmind's process_chpw_request, make sure
to free error message strings. ticket: 6284 status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@21776 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/kadmin/server/schpw.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/kadmin/server/schpw.c b/src/kadmin/server/schpw.c
index 53f2e59ba..517ea7d2c 100644
--- a/src/kadmin/server/schpw.c
+++ b/src/kadmin/server/schpw.c
@@ -39,6 +39,7 @@ process_chpw_request(context, server_handle, realm, keytab,
int numresult;
char strresult[1024];
char *clientstr = NULL, *targetstr = NULL;
+ const char *errmsg = NULL;
size_t clen;
char *cdots;
struct sockaddr_storage ss;
@@ -244,6 +245,8 @@ process_chpw_request(context, server_handle, realm, keytab,
ret = schpw_util_wrapper(server_handle, client, target,
(ticket->enc_part2->flags & TKT_FLG_INITIAL) != 0,
ptr, NULL, strresult, sizeof(strresult));
+ if (ret)
+ errmsg = krb5_get_error_message(context, ret);
/* zap the password */
memset(clear.data, 0, clear.length);
@@ -307,12 +310,12 @@ process_chpw_request(context, server_handle, realm, keytab,
addrbuf,
(int) clen, clientstr, cdots,
(int) tlen, targetp, tdots,
- ret ? krb5_get_error_message (context, ret) : "success");
+ errmsg ? errmsg : "success");
} else {
krb5_klog_syslog(LOG_NOTICE, "chpw request from %s for %.*s%s: %s",
addrbuf,
(int) clen, clientstr, cdots,
- ret ? krb5_get_error_message (context, ret) : "success");
+ errmsg ? errmsg : "success");
}
switch (ret) {
case KADM5_AUTH_CHANGEPW:
@@ -467,6 +470,8 @@ bailout:
krb5_free_unparsed_name(context, targetstr);
if (clientstr)
krb5_free_unparsed_name(context, clientstr);
+ if (errmsg)
+ krb5_free_error_message(context, errmsg);
return(ret);
}