https://bugs.winehq.org/show_bug.cgi?id=52673
Bug ID: 52673 Summary: Missing IShellItemImageFactory implementation for ShellItem. Product: Wine Version: 7.4 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: shell32 Assignee: wine-bugs@winehq.org Reporter: jinoh.kang.kr@gmail.com Distribution: ---
This leads to KakaoTalk crashing when displaying the thumbnail of video being uploaded.
https://bugs.winehq.org/show_bug.cgi?id=52673
Jinoh Kang jinoh.kang.kr@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|7.4 |7.5 CC| |kellnerp@earthlink.net, | |lorentz0021@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=52673
--- Comment #1 from Jinoh Kang jinoh.kang.kr@gmail.com --- Please test:
https://source.winehq.org/patches/data/230241 https://source.winehq.org/patches/data/230242 https://source.winehq.org/patches/data/230243 https://source.winehq.org/patches/data/230244 https://source.winehq.org/patches/data/230245
https://bugs.winehq.org/show_bug.cgi?id=52673
Jinoh Kang jinoh.kang.kr@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|7.5 |7.7 CC| |bsjeon@hanmail.net
--- Comment #2 from Jinoh Kang jinoh.kang.kr@gmail.com --- Bumping version and updating CC list.
https://bugs.winehq.org/show_bug.cgi?id=52673
--- Comment #3 from Byeongsik Jeon bsjeon@hanmail.net --- Thank you for your work.
https://gitlab.winehq.org/wine/wine/-/merge_requests/190
How about trying a simple patch that changes the ShellItem_IShellItemImageFactory_GetImage() return value from E_NOTIMPL to S_OK?
This alone allowed the KakaoTalk crash to be avoided.
Many cases can be found using fake return value in other Wine (full) stub function implementations.
https://bugs.winehq.org/show_bug.cgi?id=52673
--- Comment #4 from Jinoh Kang jinoh.kang.kr@gmail.com --- (In reply to Byeongsik Jeon from comment #3)
Thank you for your work.
https://gitlab.winehq.org/wine/wine/-/merge_requests/190
How about trying a simple patch that changes the ShellItem_IShellItemImageFactory_GetImage() return value from E_NOTIMPL to S_OK?
This alone allowed the KakaoTalk crash to be avoided.
Many cases can be found using fake return value in other Wine (full) stub function implementations.
It's probably a good idea to return at least some valid bitmap, even if it does not represent anything that looks related to the item.
https://bugs.winehq.org/show_bug.cgi?id=52673
Julian RĂ¼ger jr98@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jr98@gmx.net
https://bugs.winehq.org/show_bug.cgi?id=52673
Jinoh Kang jinoh.kang.kr@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Fixed by SHA1| |16d785d41608ba6ca6e73d42551 | |54ceed0647ac2 Status|UNCONFIRMED |RESOLVED
--- Comment #5 from Jinoh Kang jinoh.kang.kr@gmail.com --- Fix committed.
https://bugs.winehq.org/show_bug.cgi?id=52673
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #6 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 7.14.
https://bugs.winehq.org/show_bug.cgi?id=52673
--- Comment #7 from Jinoh Kang jinoh.kang.kr@gmail.com --- (In reply to Byeongsik Jeon from comment #3)
How about trying a simple patch that changes the ShellItem_IShellItemImageFactory_GetImage() return value from E_NOTIMPL to S_OK?
This alone allowed the KakaoTalk crash to be avoided.
Many cases can be found using fake return value in other Wine (full) stub function implementations.
For future reference: yes, returning E_NOTIMPL was not an option because it will skip setting a certain bitmap pointer or allocating an internal bitmap object which later causes NULL pointer dereference. Returning S_OK but not returning any HBITMAP at all would technically avoid the crash, but it's against COM convention to leave [out] pointer uninitialized and leads to confusing results.