mirror of
https://github.com/samba-team/samba.git
synced 2025-10-30 08:23:49 +03:00
libcli/auth/smbencrypt: in E_deshash, use talloc_stackframe instead of "#if _SAMBA_BUILD_ == 3" and talloc_tos()
talloc_stackframe() is used in other shared components already, and if the stack is a talloc_pool, then in most cases, it should also not be more expensive than directly using talloc_tos(). Pair-Programmed-With: Stefan Metzmacher <metze@samba.org> Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Thu May 12 12:52:02 CEST 2011 on sn-devel-104
This commit is contained in:
committed by
Volker Lendecke
parent
26b6831164
commit
cd1d75c7a4
@@ -118,7 +118,7 @@ bool E_deshash(const char *passwd, uint8_t p16[16])
|
||||
{
|
||||
bool ret;
|
||||
uint8_t dospwd[14];
|
||||
TALLOC_CTX *mem_ctx;
|
||||
TALLOC_CTX *frame = talloc_stackframe();
|
||||
|
||||
size_t converted_size;
|
||||
|
||||
@@ -126,23 +126,19 @@ bool E_deshash(const char *passwd, uint8_t p16[16])
|
||||
|
||||
ZERO_STRUCT(dospwd);
|
||||
|
||||
#if _SAMBA_BUILD_ == 3
|
||||
mem_ctx = talloc_tos();
|
||||
#else
|
||||
mem_ctx = NULL;
|
||||
#endif
|
||||
tmpbuf = strupper_talloc(mem_ctx, passwd);
|
||||
tmpbuf = strupper_talloc(frame, passwd);
|
||||
if (tmpbuf == NULL) {
|
||||
/* Too many callers don't check this result, we need to fill in the buffer with something */
|
||||
strlcpy((char *)dospwd, passwd ? passwd : "", sizeof(dospwd));
|
||||
E_P16(dospwd, p16);
|
||||
talloc_free(frame);
|
||||
return false;
|
||||
}
|
||||
|
||||
ZERO_STRUCT(dospwd);
|
||||
|
||||
ret = convert_string_error(CH_UNIX, CH_DOS, tmpbuf, strlen(tmpbuf), dospwd, sizeof(dospwd), &converted_size);
|
||||
talloc_free(tmpbuf);
|
||||
talloc_free(frame);
|
||||
|
||||
/* Only the first 14 chars are considered, password need not
|
||||
* be null terminated. We do this in the error and success
|
||||
|
||||
Reference in New Issue
Block a user