diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-12-10 21:46:59 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-12-10 21:46:59 +0000 |
commit | b2f62a9dfad85b17622ada01e540d1dfe412b637 (patch) | |
tree | 1c2f078345a959473628b1a60b4562f6c5704b10 /apropos_db.c | |
parent | 51947e6b3e08cfaae752bef72751eef476633755 (diff) | |
download | mandoc-b2f62a9dfad85b17622ada01e540d1dfe412b637.tar.gz |
Plug a memory leak in single_search().
Diffstat (limited to 'apropos_db.c')
-rw-r--r-- | apropos_db.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/apropos_db.c b/apropos_db.c index 36afaf47..7684f27e 100644 --- a/apropos_db.c +++ b/apropos_db.c @@ -550,6 +550,7 @@ single_search(struct rectree *tree, const struct opts *opts, (rs, (tree->len + 1) * sizeof(struct rec)); memcpy(&rs[tree->len], &r, sizeof(struct rec)); + memset(&r, 0, sizeof(struct rec)); rs[tree->len].matches = mandoc_calloc(terms, sizeof(int)); @@ -565,7 +566,6 @@ single_search(struct rectree *tree, const struct opts *opts, } else root = tree->len; - memset(&r, 0, sizeof(struct rec)); tree->len++; } @@ -573,6 +573,7 @@ single_search(struct rectree *tree, const struct opts *opts, (*idx->close)(idx); free(buf); + recfree(&r); return(1 == ch); } |