[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