[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 59a11116e01 09/11: Pacify GCC 14 -Wstring-operflow in ftfont.c
From: |
Paul Eggert |
Subject: |
master 59a11116e01 09/11: Pacify GCC 14 -Wstring-operflow in ftfont.c |
Date: |
Tue, 30 Apr 2024 04:26:38 -0400 (EDT) |
branch: master
commit 59a11116e013fb123ba074da9bca373c1aa03367
Author: Paul Eggert <eggert@cs.ucla.edu>
Commit: Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 14 -Wstring-operflow in ftfont.c
* src/ftfont.c (ftfont_drive_otf): Do not crash if
spec->features[i] is nonnull but is empty.
Use gfeatures local to pacify GCC 14.
---
src/ftfont.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/ftfont.c b/src/ftfont.c
index 0d10de5408f..2e37b62ea35 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -2030,7 +2030,6 @@ ftfont_drive_otf (MFLTFont *font,
int i, j, gidx;
OTF_Glyph *otfg;
char script[5], *langsys = NULL;
- char *gsub_features = NULL, *gpos_features = NULL;
OTF_Feature *features;
if (len == 0)
@@ -2044,6 +2043,7 @@ ftfont_drive_otf (MFLTFont *font,
OTF_tag_name (spec->langsys, langsys);
}
+ char *gfeatures[2] = {NULL, NULL};
USE_SAFE_ALLOCA;
for (i = 0; i < 2; i++)
{
@@ -2052,11 +2052,10 @@ ftfont_drive_otf (MFLTFont *font,
if (spec->features[i] && spec->features[i][1] != 0xFFFFFFFF)
{
for (j = 0; spec->features[i][j]; j++);
+ if (j == 0)
+ continue;
SAFE_NALLOCA (p, 6, j);
- if (i == 0)
- gsub_features = p;
- else
- gpos_features = p;
+ gfeatures[i] = p;
for (j = 0; spec->features[i][j]; j++)
{
if (spec->features[i][j] == 0xFFFFFFFF)
@@ -2071,6 +2070,7 @@ ftfont_drive_otf (MFLTFont *font,
*--p = '\0';
}
}
+ char *gsub_features = gfeatures[0], *gpos_features = gfeatures[1];
setup_otf_gstring (len);
for (i = 0; i < len; i++)
- master updated (d24981d27ce -> aad80e1934f), Paul Eggert, 2024/04/30
- master 7e2309c6fc6 02/11: etags: fix #line parsing (\\", long lines), Paul Eggert, 2024/04/30
- master de59c02c685 01/11: Simplify etags.c by omitting a macro, Paul Eggert, 2024/04/30
- master ca4f0705be5 03/11: etags: work around GCC bug 114882, Paul Eggert, 2024/04/30
- master 62c2afe8410 05/11: Pacify GCC 14 -Wnull-dereference, Paul Eggert, 2024/04/30
- master 98d0fc989a0 04/11: Pacify GCC 14 -Walloc-size, Paul Eggert, 2024/04/30
- master c2b2a38f70f 07/11: Pacify GCC 14 -Wnull-dereference in tim_sort, Paul Eggert, 2024/04/30
- master aad80e1934f 11/11: Work around bad GCC diagnostic in select_window, Paul Eggert, 2024/04/30
- master 750dbccc124 08/11: Pacify GCC 14 -Wnull-dereference in intervals.c, Paul Eggert, 2024/04/30
- master c57a03c75e9 10/11: Pacify GCC 14 -Wanalyzer-out-of-bounds in hbfont.c, Paul Eggert, 2024/04/30
- master 59a11116e01 09/11: Pacify GCC 14 -Wstring-operflow in ftfont.c,
Paul Eggert <=
- master 009a6ba71ea 06/11: Pacify GCC 14 -Wclobbered in eval.c, Paul Eggert, 2024/04/30