Unable to delete >64K PT_BINARY prop
Open
@stephenegriffin is already working on this.
Since Nov 14, 2023.
bug
- Dominant language
- C++
- Stars
- 978
- Forks
- 170
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 5
Description
Version: 23.0.23089.01 x64
Reproducer:
- Select some folder. Use Property > Advanced > Edit specific property. Pick e.g. 0x70102. (The PT_BINARY editor comes up.) Set text "xx" or something small. Close the editor with OK. (The property is saved.)
- Select 0x70102 from the right pane if not already the case. Use Property > Selected property > As stream > Binary. (The PT_BINARY editor comes up again.) Set a text which is longer than 65536 characters. Close the editor wik OK. (The property is saved.)
- The right pane switches property 0x70102 to 0x7000a with red icon with PT_ERROR+MAPI_E_NOT_ENOUGH_MEMORY. (Legit.) Now delete the property with the DEL key.
- Observe the property is not deleted. According to the MFCMAPI logfile,
CSingleMAPIPropListCtrl::OnDeleteProperty deleting property 0x0007000a.
DeleteProperty: Deleting prop 0x00070000 from MAPI item 000001C68DF1DCC0.
When a small-size property is deleted, the log would read something like this
CSingleMAPIPropListCtrl::OnDeleteProperty deleting property 0x00070003.
DeleteProperty: Deleting prop 0x00070003 from MAPI item 000002BCE5B1AA20.
It looks like MFCMAPI is erroneously using the proptag returned in IMAPITable rather than the original one as returned by GetPropList.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.