On Wed, 3 Sep 2014 14:54:44 +0200, Jonathan Vollebregt wrote:
- if (path[0] == '\')
- {
path++;
- }
- if (path[0] == '\')
- {
reg_message(STRING_NO_REMOTE);
return NULL;
- }
This would be valid if the path was something like \remote-machine\HKLM.
But if the first if block was true and the second block was false, the registry path is invalid. Windows does not accept registry paths such as \HKLM.
In summary:
True + True = valid path, but not supported in Wine. True + False = invalid path False + True = impossible False + False = valid path
The original check was better: if (key_name[0] == '\' && key_name[1] == '\') { reg_message(STRING_NO_REMOTE); return 1; } It was also unclear why you perform the path[0] == '\' check in path_get_key() and path_get_rootkey_name(). One common check should be enough. The original version of this patch did this (now superseded). But I see you made some changes around the reg_delete() function.
It was also unclear why you perform the path[0] == '\' check in path_get_key() and path_get_rootkey_name(). One common check should be enough. The original version of this patch did this (now superseded). But I see you made some changes around the reg_delete() function.
That was an (Admittedly poor) attempt to prevent a double error message when specifying a remote.
Would this be considered a patch-stopping problem, or can I just leave it like that? I would have to do the redundant if in path_get_key to stop the double error, since path_get_key (through path_get_rootkey) isn't the only place path_get_rootkey_name is called.