diff options
author | fvogel <fvogelnew1@free.fr> | 2023-11-05 15:56:52 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2023-11-05 15:56:52 (GMT) |
commit | 1753940cb05ca5e4e54c36e5411e7a2bd7f37e99 (patch) | |
tree | b9c88e75f88b57df190fbe993fa05f3571843b3d /generic/tkTextBTree.c | |
parent | 175bd29fa30803f63c3346585344a9f35b63dd17 (diff) | |
download | tk-1753940cb05ca5e4e54c36e5411e7a2bd7f37e99.zip tk-1753940cb05ca5e4e54c36e5411e7a2bd7f37e99.tar.gz tk-1753940cb05ca5e4e54c36e5411e7a2bd7f37e99.tar.bz2 |
Fix [499f8e3313]: AdjustStartEndRefs(): avoid undefined realloc() call. Patch from Christopher Chavez.
Diffstat (limited to 'generic/tkTextBTree.c')
-rw-r--r-- | generic/tkTextBTree.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/generic/tkTextBTree.c b/generic/tkTextBTree.c index 533f1bf..1c9cc98 100644 --- a/generic/tkTextBTree.c +++ b/generic/tkTextBTree.c @@ -632,10 +632,18 @@ AdjustStartEndRefs( i++; } treePtr->startEndCount = count; - treePtr->startEnd = (TkTextLine **)ckrealloc(treePtr->startEnd, - sizeof(TkTextLine *) * count); - treePtr->startEndRef = (TkText **)ckrealloc(treePtr->startEndRef, - sizeof(TkText *) * count); + if (count > 0) { + treePtr->startEnd = (TkTextLine**)ckrealloc(treePtr->startEnd, + sizeof(TkTextLine*) * count); + treePtr->startEndRef = (TkText**)ckrealloc(treePtr->startEndRef, + sizeof(TkText*) * count); + } + else { + ckfree(treePtr->startEndRef); + treePtr->startEndRef = NULL; + ckfree(treePtr->startEnd); + treePtr->startEnd = NULL; + } } if ((action & TEXT_ADD_REFS) && (textPtr->start != NULL || textPtr->end != NULL)) { |