diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-06-09 02:37:33 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-06-09 02:37:33 -0400 |
commit | f6e7ffdf3fe8e3ed5e659f747946461350ade5a8 (patch) | |
tree | d261964cafdd51154b1ad757574f508da2d9ad76 /src/basic/strbuf.c | |
parent | 566cac15ed36506e2bb766313a5d4e0825bc6499 (diff) | |
parent | 022ed72eff07ca6c1409747e774ef5b35724c9df (diff) |
Merge tag 'v230-3.parabola1' into parabola
Diffstat (limited to 'src/basic/strbuf.c')
-rw-r--r-- | src/basic/strbuf.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/basic/strbuf.c b/src/basic/strbuf.c index 77220c0251..4bef87d3c2 100644 --- a/src/basic/strbuf.c +++ b/src/basic/strbuf.c @@ -121,7 +121,7 @@ static void bubbleinsert(struct strbuf_node *node, sizeof(struct strbuf_child_entry) * (node->children_count - left)); node->children[left] = new; - node->children_count ++; + node->children_count++; } /* add string, return the index/offset into the buffer */ @@ -156,8 +156,13 @@ ssize_t strbuf_add_string(struct strbuf *str, const char *s, size_t len) { return off; } - /* lookup child node */ c = s[len - 1 - depth]; + + /* bsearch is not allowed on a NULL sequence */ + if (node->children_count == 0) + break; + + /* lookup child node */ search.c = c; child = bsearch(&search, node->children, node->children_count, sizeof(struct strbuf_child_entry), |