summaryrefslogtreecommitdiff
path: root/lib-src
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2020-05-24 18:01:45 +0300
committerEli Zaretskii <eliz@gnu.org>2020-05-24 18:01:45 +0300
commit0195809bb652df1e11f8768860e954b6c4398dee (patch)
treec8ec74b16ed55cd89a65a469361edebf9dc96a71 /lib-src
parentcddb0079ff48fb839be742b157b709d1f1649709 (diff)
downloademacs-0195809bb652df1e11f8768860e954b6c4398dee.tar.gz
Fix rare assertion violations in 'etags'
* lib-src/etags.c (pfnote): Instead of raising an assertion when we get an empty tag name, return immediately. (Bug#41465) * test/manual/etags/ETAGS.good_1: * test/manual/etags/ETAGS.good_2: * test/manual/etags/ETAGS.good_3: * test/manual/etags/ETAGS.good_4: * test/manual/etags/ETAGS.good_5: * test/manual/etags/ETAGS.good_6: Adapt to latest changes in etags.
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/etags.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 174c33a7a5f..8babe926db1 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -1984,8 +1984,11 @@ pfnote (char *name, bool is_func, char *linestart, ptrdiff_t linelen,
{
register node *np;
- assert (name == NULL || name[0] != '\0');
- if (CTAGS && name == NULL)
+ if ((CTAGS && name == NULL)
+ /* We used to have an assertion here for the case below, but if we hit
+ that case, it just means our parser got confused, and there's nothing
+ to do about such empty "tags". */
+ || (!CTAGS && name && name[0] == '\0'))
return;
np = xnew (1, node);