diff options
author | Jari Vetoniemi <mailroxas@gmail.com> | 2014-04-12 20:52:01 +0300 |
---|---|---|
committer | Jari Vetoniemi <mailroxas@gmail.com> | 2014-04-12 20:52:01 +0300 |
commit | 5599e1aa8ec62788f4a75f0944eb58bbab7035df (patch) | |
tree | 6d2b1c0412d24975bd514d30b864a1cba290aef8 /lib/filter.c | |
parent | 6692f73c5c3e34baa5b5d8e2fdfa524291979317 (diff) | |
download | bemenu-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.c | 4 |
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; |