mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
Cope with the fact that the data blobs returned are now
talloc-allocated. Ideally, this memory should be talloc-stolen (and perhaps have DATA_BLOB in the interface everywhere), but that requires some more complex changes so I've just changed it to copy it for now.
This commit is contained in:
parent
5237369ad8
commit
d68168e633
@ -426,9 +426,14 @@ static NTSTATUS srv_enc_spnego_gss_negotiate(unsigned char **ppdata, size_t *p_d
|
||||
data_blob_free(&auth_reply);
|
||||
|
||||
SAFE_FREE(*ppdata);
|
||||
*ppdata = response.data;
|
||||
*ppdata = memdup(response.data, response.length);
|
||||
if ((*ppdata) == NULL && response.length > 0) {
|
||||
status = NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
*p_data_size = response.length;
|
||||
|
||||
data_blob_free(&response);
|
||||
|
||||
return status;
|
||||
}
|
||||
#endif
|
||||
@ -463,8 +468,13 @@ static NTSTATUS srv_enc_ntlm_negotiate(unsigned char **ppdata, size_t *p_data_si
|
||||
}
|
||||
|
||||
SAFE_FREE(*ppdata);
|
||||
*ppdata = response.data;
|
||||
*ppdata = memdup(response.data, response.length);
|
||||
if ((*ppdata) == NULL && response.length > 0) {
|
||||
status = NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
*p_data_size = response.length;
|
||||
data_blob_free(&response);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
@ -585,8 +595,11 @@ static NTSTATUS srv_enc_spnego_ntlm_auth(connection_struct *conn,
|
||||
}
|
||||
|
||||
SAFE_FREE(*ppdata);
|
||||
*ppdata = response.data;
|
||||
*ppdata = memdup(response.data, response.length);
|
||||
if ((*ppdata) == NULL && response.length > 0)
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
*p_data_size = response.length;
|
||||
data_blob_free(&response);
|
||||
return status;
|
||||
}
|
||||
|
||||
@ -636,8 +649,11 @@ static NTSTATUS srv_enc_raw_ntlm_auth(connection_struct *conn,
|
||||
|
||||
/* Return the raw blob. */
|
||||
SAFE_FREE(*ppdata);
|
||||
*ppdata = response.data;
|
||||
*ppdata = memdup(response.data, response.length);
|
||||
if ((*ppdata) == NULL && response.length > 0)
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
*p_data_size = response.length;
|
||||
data_blob_free(&response);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user