Ticket #519 (Fixed)Tue Jul 13 20:48:17 UTC 2021
Wimp title bar validation crash
Reported by: | David Thomas (43) | Severity: | Normal |
Part: | Release: | ||
Milestone: | Status | Fixed |
Details by David Thomas (43):
I discovered that development versions of PrivateEye were crashing specific other tasks, including Maestro, when they were loaded to adjacent positions on the icon bar.
After a lot of hunting I found that ccres (the Template/Res<->Text tool) outputs Templates which include a title bar definition which points to an empty string. Normally this would be encoded as a validation string pointer of 0 or -1 in the window definition. It’s unusual, but not wrong per-se.
It turns out that this causes Wimp_CreateWindow to call checkextent > minwindowx > seticonptrs which in the “check for line spacing” chunk calls pageiniconbartask. This seems to page out the active task and we end up with (in my tests) Maestro running while the validation string pointer from one of PrivateEye’s windows is used… seticonptrs then instructs findcommand to hunt for an ‘L’ validation string using PrivateEye’s title bar validation string pointer, but using Maestro’s RAM. If Maestro’s not got enough RAM, then bang, it crashes and then PrivateEye explodes too.
I’ve observed the same behaviour on various Wimps back to 3.7. I’ve not tried earlier.
Changelog:
Modified by Stuart Swales (8827) Sun, July 18 2021 - 10:23:16 GMT
The syntax specified for validation strings in the PRM doesn’t permit empty strings
Modified by Jeffrey Lee (213) Sat, January 14 2023 - 21:01:38 GMT
- Status changed from Open to Fixed
Should be fixed with Wimp 5.85 – empty validation strings will now be ignored