diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c index e75ebec031b..bc488d3cdb5 100644 --- a/programs/regedit/regproc.c +++ b/programs/regedit/regproc.c @@ -21,6 +21,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include #include #include #include @@ -319,8 +320,8 @@ static BOOL parse_data_type(struct parser *parser, WCHAR **line) DWORD val; /* "hex(xx):" is special */ - val = strtoulW(*line, &end, 16); - if (!**line || *end != ')' || *(end + 1) != ':') + val = wcstoul(*line, &end, 16); + if (!**line || *end != ')' || *(end + 1) != ':' || (val == ~0u && errno == ERANGE)) return FALSE; parser->data_type = val; diff --git a/programs/regedit/tests/regedit.c b/programs/regedit/tests/regedit.c index 96091f84265..79f75710b38 100644 --- a/programs/regedit/tests/regedit.c +++ b/programs/regedit/tests/regedit.c @@ -464,7 +464,7 @@ static void test_basic_import(void) verify_reg(hkey, "Wine13f", 0xffff, "Value", 6, 0); verify_reg(hkey, "Wine13g", 0x7fffffff, "Value", 6, 0); verify_reg(hkey, "Wine13h", 0xffffffff, "Value", 6, 0); - todo_wine verify_reg_nonexist(hkey, "Wine13i"); + verify_reg_nonexist(hkey, "Wine13i"); RegCloseKey(hkey);