Bug 8365

Summary: Запись по нулевому указателю в функции ITypeInfo2_fnGetContainingTypeLib
Product: WINE@Etersoft Reporter: Константин Кондратюк <kondratyuk>
Component: OLE / DDE / RPCAssignee: Татьяна Фокина <tatyana>
Status: CLOSED FIXED QA Contact:
Severity: minor    
Priority: P4 CC: baraka, lav, vitperov
Version: 2.0   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 3000    

Description Константин Кондратюк 2012-04-04 19:20:25 MSK
(по мотивам баги 8241)

В процессе работы с 1С и MS Script (jscript) возникает ситуация, когда указатель pIndex нулевой, а в него идёт запись значения.

В MSDN по поводу того, может ли быть указатель нулевым, ничего не сказано:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms221450%28v=vs.85%29.aspx

Нужно:
1. Создать тест, выясняющий, может ли быть указатель нулевым.
2. Если указатель не может быть нулевым (E_INVALIDARG), нужно добавить в метод проверку на корректность значений, а также найти и исправить ошибку, из-за которой в функцию приходит не правильное значение (eterbug #8241).
Comment 1 Татьяна Фокина 2012-10-31 14:17:17 MSK
Да, в MSDN сказано только, что "параметр может передаваться неинициализированным". Написала программку, которая вызывает функцию с нулевым значением pIndex. Windows на это реагирует нормально, код ошибки возвращается S_OK.
Comment 2 Татьяна Фокина 2012-11-02 16:30:41 MSK
Сейчас результаты написанного мной теста для нулевого указателя pIndex совпадают с результатами выполнения его же в windows, но если указатель ppTLib нулевой, wine падает, хотя в windows он также игнорируется.
В wine есть еще одна функция ITypeInfo_fnGetContainingTypeLib, которая содержит проверку обоих указателей.
Comment 3 Татьяна Фокина 2013-04-09 22:48:35 MSK
поняла что было не так, переписала тест, отправлю...
Comment 4 Татьяна Фокина 2013-04-10 23:50:45 MSK
А можно совет? Я тут тест допереписала, а потом подумалось. Вот у меня тестируемая функция имеет 2 выходных параметра, их обязательно оба проверять?
Comment 5 Татьяна Фокина 2013-05-24 18:24:12 MSK
(В ответ на comment #4)
> А можно совет? Я тут тест допереписала, а потом подумалось. Вот у меня
> тестируемая функция имеет 2 выходных параметра, их обязательно оба проверять?

Исправила, отправила ещё раз.
Comment 6 Татьяна Фокина 2013-05-29 11:15:04 MSK
Принято на winehq.
Comment 7 Татьяна Фокина 2013-05-29 13:17:56 MSK
Чтобы не было путаницы, отправила к нам revert 8241
    oleaut32: Check pointer before writing (eterbug #8241)
и новые патчи.
Comment 8 Vitaly Lipatov 2014-09-11 18:46:44 MSK
Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять.