(spnego_initial): handle mech_token better
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@13682 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -879,7 +879,15 @@ spnego_initial
|
|||||||
return GSS_S_FAILURE;
|
return GSS_S_FAILURE;
|
||||||
}
|
}
|
||||||
ni.mechToken->length = mech_token.length;
|
ni.mechToken->length = mech_token.length;
|
||||||
ni.mechToken->data = mech_token.value;
|
ni.mechToken->data = malloc(mech_token.length);
|
||||||
|
if (ni.mechToken->data == NULL && mech_token.length != 0) {
|
||||||
|
free_NegTokenInit(&ni);
|
||||||
|
gss_release_buffer(&minor, &mech_token);
|
||||||
|
*minor_status = ENOMEM;
|
||||||
|
return GSS_S_FAILURE;
|
||||||
|
}
|
||||||
|
memcpy(ni.mechToken->data, mech_token.value, mech_token.length);
|
||||||
|
gss_release_buffer(&minor, &mech_token);
|
||||||
} else
|
} else
|
||||||
ni.mechToken = NULL;
|
ni.mechToken = NULL;
|
||||||
|
|
||||||
@@ -952,8 +960,6 @@ spnego_initial
|
|||||||
data.data = buf + buf_size - buf_len;
|
data.data = buf + buf_size - buf_len;
|
||||||
data.length = buf_len;
|
data.length = buf_len;
|
||||||
#endif
|
#endif
|
||||||
if (mech_token.length != 0)
|
|
||||||
gss_release_buffer(&minor, &mech_token);
|
|
||||||
free_NegTokenInit(&ni);
|
free_NegTokenInit(&ni);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@@ -879,7 +879,15 @@ spnego_initial
|
|||||||
return GSS_S_FAILURE;
|
return GSS_S_FAILURE;
|
||||||
}
|
}
|
||||||
ni.mechToken->length = mech_token.length;
|
ni.mechToken->length = mech_token.length;
|
||||||
ni.mechToken->data = mech_token.value;
|
ni.mechToken->data = malloc(mech_token.length);
|
||||||
|
if (ni.mechToken->data == NULL && mech_token.length != 0) {
|
||||||
|
free_NegTokenInit(&ni);
|
||||||
|
gss_release_buffer(&minor, &mech_token);
|
||||||
|
*minor_status = ENOMEM;
|
||||||
|
return GSS_S_FAILURE;
|
||||||
|
}
|
||||||
|
memcpy(ni.mechToken->data, mech_token.value, mech_token.length);
|
||||||
|
gss_release_buffer(&minor, &mech_token);
|
||||||
} else
|
} else
|
||||||
ni.mechToken = NULL;
|
ni.mechToken = NULL;
|
||||||
|
|
||||||
@@ -952,8 +960,6 @@ spnego_initial
|
|||||||
data.data = buf + buf_size - buf_len;
|
data.data = buf + buf_size - buf_len;
|
||||||
data.length = buf_len;
|
data.length = buf_len;
|
||||||
#endif
|
#endif
|
||||||
if (mech_token.length != 0)
|
|
||||||
gss_release_buffer(&minor, &mech_token);
|
|
||||||
free_NegTokenInit(&ni);
|
free_NegTokenInit(&ni);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
Reference in New Issue
Block a user