Skip to content

shell32: Retrieve shell autocompletion strings one at a time.

When an instance of IEnumString in the ETQW World Editor is used to provide shell autocompletion strings, a crash can occur because its implementation of IEnumString::Next never initializes the output number of strings returned on success, which results in the uninitialized count being used to expand the enumerated strings array without bound.

To determine if a string was successfully retrieved from IEnumString::Next, the enumeration of autocompletion strings now retrieves only one string at a time and checks the returned HRESULT for appropriate success. This avoids reliance on the output count for determining success.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51630

Merge request reports

Loading