summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryce Harrington <bryce@osg.samsung.com>2015-08-28 13:23:45 -0700
committerBryce Harrington <bryce@osg.samsung.com>2015-10-28 17:04:11 -0700
commitaa458ef5367eee727a421eb97f89e8eb8643ce10 (patch)
treed442a5a512ae7aae438a1a018598e3a4c64cfc19
parent6bde9f35df56ffaf574d098f61c60f6291f34b72 (diff)
Ensure null-terminated result from strncpy()
-rw-r--r--src/cairo-scaled-font-subsets.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cairo-scaled-font-subsets.c b/src/cairo-scaled-font-subsets.c
index 212176183..196fa999a 100644
--- a/src/cairo-scaled-font-subsets.c
+++ b/src/cairo-scaled-font-subsets.c
@@ -1206,10 +1206,12 @@ _cairo_scaled_font_subset_create_glyph_names (cairo_scaled_font_subset_t *subset
if (utf16_len == 1) {
int ch = _cairo_unicode_to_winansi (utf16[0]);
- if (ch > 0 && _cairo_winansi_to_glyphname (ch))
+ if (ch > 0 && _cairo_winansi_to_glyphname (ch)) {
strncpy (buf, _cairo_winansi_to_glyphname (ch), sizeof (buf));
- else
+ buf[sizeof (buf)-1] = '\0';
+ } else {
snprintf (buf, sizeof (buf), "uni%04X", (int) utf16[0]);
+ }
_cairo_string_init_key (&key, buf);
entry = _cairo_hash_table_lookup (names, &key.base);