If not using sticky mode (the default), clients aren't automagically

assigned a group, thus cc->group will be NULL - fix the client group
shortcut in menu lists; crash reported by Christian Neukirchen.
This commit is contained in:
okan 2013-12-08 13:51:38 +00:00
parent a7402e9e1c
commit a6e6db763a
2 changed files with 5 additions and 5 deletions

View File

@ -16,7 +16,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
* *
* $OpenBSD: mousefunc.c,v 1.60 2013/12/02 19:30:27 okan Exp $ * $OpenBSD: mousefunc.c,v 1.61 2013/12/08 13:51:38 okan Exp $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -231,8 +231,8 @@ mousefunc_menu_unhide(struct client_ctx *cc, void *arg)
continue; continue;
mi = xcalloc(1, sizeof(*mi)); mi = xcalloc(1, sizeof(*mi));
(void)snprintf(mi->text, sizeof(mi->text), (void)snprintf(mi->text, sizeof(mi->text), "(%d) %s",
"(%d) %s", cc->group->shortcut, wname); cc->group ? cc->group->shortcut : 0, wname);
mi->ctx = cc; mi->ctx = cc;
TAILQ_INSERT_TAIL(&menuq, mi, entry); TAILQ_INSERT_TAIL(&menuq, mi, entry);
} }

View File

@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
* *
* $OpenBSD: search.c,v 1.32 2013/12/02 19:30:27 okan Exp $ * $OpenBSD: search.c,v 1.33 2013/12/08 13:51:38 okan Exp $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -143,7 +143,7 @@ search_print_client(struct menu *mi, int list)
cc->matchname = cc->name; cc->matchname = cc->name;
(void)snprintf(mi->print, sizeof(mi->print), "(%d) %c%s", (void)snprintf(mi->print, sizeof(mi->print), "(%d) %c%s",
cc->group->shortcut, flag, cc->matchname); cc->group ? cc->group->shortcut : 0, flag, cc->matchname);
if (!list && cc->matchname != cc->name && if (!list && cc->matchname != cc->name &&
strlen(mi->print) < sizeof(mi->print) - 1) { strlen(mi->print) < sizeof(mi->print) - 1) {