mirror of
https://github.com/samba-team/samba.git
synced 2025-02-26 21:57:41 +03:00
s3:registry: reg_format: handle unterminated REG_SZ blobs
Signed-off-by: Michael Adam <obnox@samba.org>
This commit is contained in:
parent
595cc42a46
commit
b9da423556
@ -326,6 +326,12 @@ done:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool is_zero_terminated_ucs2(const uint8_t* data, size_t len) {
|
||||
const size_t idx = len/sizeof(smb_ucs2_t);
|
||||
const smb_ucs2_t *str = (const smb_ucs2_t*)data;
|
||||
return (idx > 0) && (str[idx] == 0);
|
||||
}
|
||||
|
||||
int reg_format_value(struct reg_format* f, const char* name, uint32_t type,
|
||||
const uint8_t* data, size_t len)
|
||||
{
|
||||
@ -334,7 +340,9 @@ int reg_format_value(struct reg_format* f, const char* name, uint32_t type,
|
||||
|
||||
switch (type) {
|
||||
case REG_SZ:
|
||||
if (!(f->flags & REG_FMT_HEX_SZ)) {
|
||||
if (!(f->flags & REG_FMT_HEX_SZ)
|
||||
&& is_zero_terminated_ucs2(data, len))
|
||||
{
|
||||
char* str = NULL;
|
||||
size_t dlen;
|
||||
if (pull_ucs2_talloc(mem_ctx, &str, (const smb_ucs2_t*)data, &dlen)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user