diff options
| author | Ezra Peisach <epeisach@mit.edu> | 2007-02-12 00:19:47 +0000 |
|---|---|---|
| committer | Ezra Peisach <epeisach@mit.edu> | 2007-02-12 00:19:47 +0000 |
| commit | 59bbb3cb71c638559c973fd0d4343a7b4bb8cc51 (patch) | |
| tree | 6775134a7a4c9e0d8ee467ad0f4958ebe30126bc /src | |
| parent | b3905cfa0fb545e8aafb20ed92a2bff1a85c497c (diff) | |
In the resolve function - ensure on memory allocation error -
deref of null pointer does not happen.
Also include kt-int.h for prototypes.
ticket: 5411
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19153 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/krb5/keytab/kt_memory.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lib/krb5/keytab/kt_memory.c b/src/lib/krb5/keytab/kt_memory.c index 044cb1f3b..e103e7685 100644 --- a/src/lib/krb5/keytab/kt_memory.c +++ b/src/lib/krb5/keytab/kt_memory.c @@ -25,6 +25,7 @@ */
#include "k5-int.h"
+#include "kt-int.h"
#include <stdio.h>
#define HEIMDAL_COMPATIBLE
@@ -200,7 +201,7 @@ void krb5int_mkt_finalize(void) { krb5_error_code KRB5_CALLCONV
krb5_mkt_resolve(krb5_context context, const char *name, krb5_keytab *id)
{
- krb5_mkt_data *data;
+ krb5_mkt_data *data = 0;
krb5_mkt_list_node *list;
krb5_error_code err = 0;
@@ -275,9 +276,11 @@ krb5_mkt_resolve(krb5_context context, const char *name, krb5_keytab *id) err = KTLOCK(*id);
if (err) {
k5_mutex_destroy(&data->lock);
- krb5_xfree(data->name);
+ if (data && data->name)
+ krb5_xfree(data->name);
krb5_xfree(data);
- krb5_xfree(list->keytab);
+ if (list && list->keytab)
+ krb5_xfree(list->keytab);
krb5_xfree(list);
} else {
KTREFCNT(*id)++;
|
