The r1.36 menuq_add() conversion did this one wrong; fix by reverting to the

original code which adds to resultentry list, as opposed to the wrong one in
menuq_add(). Fixes crash noticed by at least Rickard Gustafsson.
This commit is contained in:
okan 2017-04-25 13:40:33 +00:00
parent 717e6c8167
commit 15b9a8fe27

View File

@ -148,9 +148,10 @@ static void
search_match_path_type(struct menu_q *menuq, struct menu_q *resultq, search_match_path_type(struct menu_q *menuq, struct menu_q *resultq,
char *search, int flag) char *search, int flag)
{ {
char pattern[PATH_MAX]; struct menu *mi;
glob_t g; char pattern[PATH_MAX];
int i; glob_t g;
int i;
(void)strlcpy(pattern, search, sizeof(pattern)); (void)strlcpy(pattern, search, sizeof(pattern));
(void)strlcat(pattern, "*", sizeof(pattern)); (void)strlcat(pattern, "*", sizeof(pattern));
@ -160,7 +161,9 @@ search_match_path_type(struct menu_q *menuq, struct menu_q *resultq,
for (i = 0; i < g.gl_pathc; i++) { for (i = 0; i < g.gl_pathc; i++) {
if ((flag & PATH_EXEC) && access(g.gl_pathv[i], X_OK)) if ((flag & PATH_EXEC) && access(g.gl_pathv[i], X_OK))
continue; continue;
menuq_add(resultq, NULL, "%s", g.gl_pathv[i]); mi = xcalloc(1, sizeof(*mi));
(void)strlcpy(mi->text, g.gl_pathv[i], sizeof(mi->text));
TAILQ_INSERT_TAIL(resultq, mi, resultentry);
} }
globfree(&g); globfree(&g);
} }