Bugs with readMenu*().
commitd356baebea8b3aeff8b20dd513c81b34f5f3826b
authorIain Patterson <wm@iain.cx>
Tue, 29 May 2012 13:21:23 +0000 (29 13:21 +0000)
committerCarlos R. Mafra <crmafra@gmail.com>
Tue, 29 May 2012 14:24:12 +0000 (29 15:24 +0100)
tree6aa5603b10a67c6b2d58a666d8c254b5cfcc1bf5
parent3eb8c9d498f0924db226451c3714c356c942faae
Bugs with readMenu*().

readMenuPipe() was calling freeline() on stuff which might be uninitialised, causing
a crash if no valid input was read.

readMenuPipe() was trying to snprintf() on an uninitialised pointer.  We now use a
fixed-length buffer like the other readMenu*() functions.

Various memory leaks in readMenu*() functions have been fixed.  There
are still some lurking around but most have been removed.

The original report from Charles Philip Chan <cpchan@bell.net> on 22 May 2012 says
that:

"Window Maker crashes when I try to open a sub-menu auto-generated by using:
 xdg_menu --format WindowMaker --charset UTF-8"

There was also a report from Amadeusz Sławiński <amade@asmblr.net> on 24 May 2012
stating that wmaker crashes using:

% cat test.sh
cat << EOF
Test MENU
stuff EXEC true
Test END
EOF

% grep test GNUstep/Defaults/WMRootMenu
  ("Generated Submenu", OPEN_MENU, "|| /home/amade/test.sh")

Error is:
wmaker(MonitorLoop(monitor.c:134)): warning: Window Maker exited due to a crash (signal 11) and will be restarted.
src/rootmenu.c