summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
19ac261)
When you import a string value like:
"Foo"="Bar"
using Windows regedit program, implicit nul-termination is added
to the value (not the key), so what is stored in the value would
be something like:
hex(1):42,00,61,00,72,00,00,00
where two of the trailing zero bytes come from the implicit
terminator. This corrects the reg_import function so it works
the same way.
$type = 1;
$data = _parse_quoted_string ($1);
return undef unless defined $data;
$type = 1;
$data = _parse_quoted_string ($1);
return undef unless defined $data;
+ $data .= "\0"; # Value strings are implicitly ASCIIZ.
$data = encode ($encoding, $data);
} elsif (m/^str\(([[:xdigit:]]+)\):(".*")$/) {
$type = hex ($1);
$data = _parse_quoted_string ($2);
return undef unless defined $data;
$data = encode ($encoding, $data);
} elsif (m/^str\(([[:xdigit:]]+)\):(".*")$/) {
$type = hex ($1);
$data = _parse_quoted_string ($2);
return undef unless defined $data;
+ $data .= "\0"; # Value strings are implicitly ASCIIZ.
$data = encode ($encoding, $data);
} elsif (m/^(".*")$/) {
$type = 1;
$data = _parse_quoted_string ($1);
return undef unless defined $data;
$data = encode ($encoding, $data);
} elsif (m/^(".*")$/) {
$type = 1;
$data = _parse_quoted_string ($1);
return undef unless defined $data;
+ $data .= "\0"; # Value strings are implicitly ASCIIZ.
$data = encode ($encoding, $data);
} else {
return undef;
$data = encode ($encoding, $data);
} else {
return undef;
[\C]
"Key1"=hex(2):48,00,65,00,6c,00,6c,00,6f,00
[\C]
"Key1"=hex(2):48,00,65,00,6c,00,6c,00,6f,00
-"Key2"=hex(2):48,00,65,00,6c,00,6c,00,6f,00
+"Key2"=hex(2):48,00,65,00,6c,00,6c,00,6f,00,00,00
"Key3"=hex(3):48,00,65,00,6c,00,6c,00,6f,00,48,00,65,00,6c,00,6c,00,6f,00
"Key4"=dword:ff123456
"Key3"=hex(3):48,00,65,00,6c,00,6c,00,6f,00,48,00,65,00,6c,00,6c,00,6f,00
"Key4"=dword:ff123456
-@=hex(1):48,00,65,00,6c,00,6c,00,6f,00
+@=hex(1):48,00,65,00,6c,00,6c,00,6f,00,00,00
[\C]
"Key1"=hex(2):48,00,65,00,6c,00,6c,00,6f,00
[\C]
"Key1"=hex(2):48,00,65,00,6c,00,6c,00,6f,00
-"Key2"=hex(2):48,00,65,00,6c,00,6c,00,6f,00
+"Key2"=hex(2):48,00,65,00,6c,00,6c,00,6f,00,00,00
"Key3"=hex(3):48,00,65,00,6c,00,6c,00,6f,00,48,00,65,00,6c,00,6c,00,6f,00
"Key4"=dword:ff123456
"Key3"=hex(3):48,00,65,00,6c,00,6c,00,6f,00,48,00,65,00,6c,00,6c,00,6f,00
"Key4"=dword:ff123456