diff options
| author | Jari Vetoniemi <mailroxas@gmail.com> | 2014-04-11 23:58:36 +0300 | 
|---|---|---|
| committer | Jari Vetoniemi <mailroxas@gmail.com> | 2014-04-11 23:58:36 +0300 | 
| commit | 5a0a2659edbaaede9bed08c431013230a0e11122 (patch) | |
| tree | 02f3ed28e6e9df3c2f07b80641fd76e01b06fc5b /lib | |
| parent | 3c6e167578b1842d53219c143aa2e6fda22ad482 (diff) | |
| download | bemenu-5a0a2659edbaaede9bed08c431013230a0e11122.tar.gz bemenu-5a0a2659edbaaede9bed08c431013230a0e11122.tar.bz2 bemenu-5a0a2659edbaaede9bed08c431013230a0e11122.zip | |
Cleanup dmenu filter.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/filter.c | 14 | 
1 files changed, 11 insertions, 3 deletions
| diff --git a/lib/filter.c b/lib/filter.c index 3dd2ba4..85a0037 100644 --- a/lib/filter.c +++ b/lib/filter.c @@ -98,13 +98,15 @@ bmItem** _bmFilterDmenuFun(bmMenu *menu, char addition, char* (*fstrstr)(const c          items = bmMenuGetItems(menu, &itemsCount);      } +    char *buffer = NULL;      bmItem **filtered = calloc(itemsCount, sizeof(bmItem*));      if (!filtered) -        return NULL; +        goto fail;      char **tokv;      unsigned int tokc; -    char *buffer = _bmFilterTokenize(menu, &tokv, &tokc); +    if (!(buffer = _bmFilterTokenize(menu, &tokv, &tokc))) +        goto fail;      bmItem *highlighted = bmMenuGetHighlightedItem(menu); @@ -129,11 +131,17 @@ bmItem** _bmFilterDmenuFun(bmMenu *menu, char addition, char* (*fstrstr)(const c      if (buffer)          free(buffer); -      if (tokv)          free(tokv);      return _bmFilterShrinkList(&filtered, menu->items.count, (*outNmemb = f)); + +fail: +    if (filtered) +        free(filtered); +    if (buffer) +        free(buffer); +    return NULL;  }  /** | 
