[Wine-devel] [Wine-patches] [eter-2.0.0][eterhack] ole32: Fixed opening the registry key when the subkey name is NULL. (eterbug #8050)
Tatyana Fokina
tatyana на etersoft.ru
Ср Окт 31 16:20:19 MSK 2012
Dmitry Timoshkov писал 31.10.2012 13:47:
> Tatyana Fokina <tatyana на etersoft.ru> wrote:
>
>> @@ -936,7 +936,17 @@ static DWORD COM_RegReadPath(HKEY hkeyroot,
>> const WCHAR *keyname, const WCHAR *v
>> WCHAR src[MAX_PATH];
>> DWORD dwLength = dstlen * sizeof(WCHAR);
>>
>> - if((ret = RegOpenKeyW(hkeyroot, keyname, &key)) == ERROR_SUCCESS)
>> {
>> + /* This hack is needed to solve
>> + * eterbug #8050
>> + * Do not open the keyroot when the keyname is NULL */
>> + if (keyname && *keyname)
>> + ret = RegOpenKeyExW(hkeyroot, keyname, 0, KEY_READ, &key);
>
> Насколько я вижу, COM_RegReadPath() всегда вызывается со 2-м и 3-м
> параметрами
> NULL. Если в этом суть проблемы, то во-первых, эти параметры просто
> нужно удалить,
> во-вторых, проверить код, который вызывает этот хелпер, и в-третьих,
> отправить
> патч (реальный, с подробным объяснеением сути проблемы) в winehq, не
> создавая
> очередной ненужный приватный хак.
Убрать параметры в данном случае не проблема, у меня только был вопрос,
может они кому-нибудь когда-нибудь понадобятся? Если лучше убрать -
уберу.
Воспроизвести проблему (не работал буфер обмена в Гаранте, потому что
программа не могла получить значение из реестра) в собственном тесте я
так и не смогла. Поэтому было решено пока оставить как хак. Тесты из
ole32 работают одинаково в обоих случаях.
Подробная информация о списке рассылки Wine-devel