summaryrefslogtreecommitdiff
path: root/lib/filter.c
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2014-04-12 20:52:01 +0300
committerJari Vetoniemi <mailroxas@gmail.com>2014-04-12 20:52:01 +0300
commit5599e1aa8ec62788f4a75f0944eb58bbab7035df (patch)
tree6d2b1c0412d24975bd514d30b864a1cba290aef8 /lib/filter.c
parent6692f73c5c3e34baa5b5d8e2fdfa524291979317 (diff)
downloadbemenu-5599e1aa8ec62788f4a75f0944eb58bbab7035df.tar.gz
bemenu-5599e1aa8ec62788f4a75f0944eb58bbab7035df.tar.bz2
bemenu-5599e1aa8ec62788f4a75f0944eb58bbab7035df.zip
Store tmp to tokv in for loop, so we can free it if something fails.
Diffstat (limited to 'lib/filter.c')
-rw-r--r--lib/filter.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/filter.c b/lib/filter.c
index 204eac1..ad1b937 100644
--- a/lib/filter.c
+++ b/lib/filter.c
@@ -57,8 +57,8 @@ static char* _bmFilterTokenize(bmMenu *menu, char ***outTokv, unsigned int *outT
size_t pos = 0, next;
unsigned int tokc = 0, tokn = 0;
char *s = buffer, **tmp = NULL;
- while ((pos = _bmStripToken(s, " ", &next)) > 0) {
- if (++tokc > tokn && !(tmp = realloc(tmp, ++tokn * sizeof(char*))))
+ for (; (pos = _bmStripToken(s, " ", &next)) > 0; tokv = tmp) {
+ if (++tokc > tokn && !(tmp = realloc(tokv, ++tokn * sizeof(char*))))
goto fail;
tmp[tokc - 1] = s;