(krb5_auth_con_init): free memory on failure correctly.
(krb5_auth_con_setaddrs_from_fd): return error correctly. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@3940 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -51,8 +51,10 @@ krb5_auth_con_init(krb5_context context,
|
|||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
memset(p, 0, sizeof(*p));
|
memset(p, 0, sizeof(*p));
|
||||||
ALLOC(p->authenticator, 1);
|
ALLOC(p->authenticator, 1);
|
||||||
if (!p->authenticator)
|
if (!p->authenticator) {
|
||||||
|
free(p);
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
|
}
|
||||||
memset (p->authenticator, 0, sizeof(*p->authenticator));
|
memset (p->authenticator, 0, sizeof(*p->authenticator));
|
||||||
p->flags = KRB5_AUTH_CONTEXT_DO_TIME;
|
p->flags = KRB5_AUTH_CONTEXT_DO_TIME;
|
||||||
|
|
||||||
@@ -158,15 +160,19 @@ krb5_auth_con_setaddrs_from_fd (krb5_context context,
|
|||||||
|
|
||||||
if (auth_context->local_address == NULL) {
|
if (auth_context->local_address == NULL) {
|
||||||
len = max_sz;
|
len = max_sz;
|
||||||
if(getsockname(fd, local, &len) < 0)
|
if(getsockname(fd, local, &len) < 0) {
|
||||||
|
ret = errno;
|
||||||
goto out;
|
goto out;
|
||||||
|
}
|
||||||
krb5_sockaddr2address (local, &local_k_address);
|
krb5_sockaddr2address (local, &local_k_address);
|
||||||
lptr = &local_k_address;
|
lptr = &local_k_address;
|
||||||
}
|
}
|
||||||
if (auth_context->remote_address == NULL) {
|
if (auth_context->remote_address == NULL) {
|
||||||
len = max_sz;
|
len = max_sz;
|
||||||
if(getpeername(fd, remote, &len) < 0)
|
if(getpeername(fd, remote, &len) < 0) {
|
||||||
|
ret = errno;
|
||||||
goto out;
|
goto out;
|
||||||
|
}
|
||||||
krb5_sockaddr2address (remote, &remote_k_address);
|
krb5_sockaddr2address (remote, &remote_k_address);
|
||||||
rptr = &remote_k_address;
|
rptr = &remote_k_address;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user