diff options
Diffstat (limited to 'lib/krb5/transited.c')
| -rw-r--r-- | lib/krb5/transited.c | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/lib/krb5/transited.c b/lib/krb5/transited.c index 35c00e65add4..8ad122afa92b 100644 --- a/lib/krb5/transited.c +++ b/lib/krb5/transited.c @@ -281,6 +281,7 @@ decode_realms(krb5_context context,  	    r = make_realm(tmp);  	    if(r == NULL){  		free_realms(*realms); +                *realms = NULL;  		return krb5_enomem(context);  	    }  	    *realms = append_realm(*realms, r); @@ -289,7 +290,8 @@ decode_realms(krb5_context context,      }      tmp = malloc(tr + i - start + 1);      if(tmp == NULL){ -	free(*realms); +        free_realms(*realms); +        *realms = NULL;  	return krb5_enomem(context);      }      memcpy(tmp, start, tr + i - start); @@ -297,6 +299,7 @@ decode_realms(krb5_context context,      r = make_realm(tmp);      if(r == NULL){  	free_realms(*realms); +        *realms = NULL;  	return krb5_enomem(context);      }      *realms = append_realm(*realms, r); | 
