https://bugs.winehq.org/show_bug.cgi?id=46210
Bug ID: 46210 Summary: explorer /desktop leaks atoms from DDE interface Product: Wine Version: 3.20 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: explorerframe Assignee: wine-bugs@winehq.org Reporter: ralf.habacker@freenet.de Distribution: ---
explorer /desktop, started by wine as background process, initiate a DDE interface (see https://github.com/wine-mirror/wine/blob/master/programs/explorer/desktop.c#... and https://github.com/wine-mirror/wine/blob/master/dlls/shell32/dde.c#L483 for details), but the DDE interface is not been free'd after main loop exit (https://github.com/wine-mirror/wine/blob/master/programs/explorer/desktop.c#...) resulting in leaked atoms.
On the first run the following DDE related atoms are created: c018: ref=2 pinned=N hash=14 "Folders" c019: ref=1 pinned=N hash=18 "Folders(0x 23)" c01b: ref=2 pinned=N hash=17 "Progman" c01c: ref=1 pinned=N hash=17 "Progman(0x 23)" c01d: ref=2 pinned=N hash=29 "Shell" c01e: ref=1 pinned=N hash=23 "Shell(0x 23)"
on the next start the following atoms are added and so one c01f: ref=1 pinned=N hash=21 "Folders(0x 44)" c027: ref=1 pinned=N hash=22 "Progman(0x 44)" c028: ref=1 pinned=N hash=26 "Shell(0x 44)"
Because the DDE interface use atoms unique for each session, each run leaks three atoms