summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2023-04-25 09:30:30 +0200
committerWerner Lemberg <wl@gnu.org>2023-04-25 11:47:18 +0200
commit40676afc4ce15fbcb4f73e1b7016ebfb3e7b5390 (patch)
tree849bd5c04448fc2b40f5250f1ed362e2b5f972ef
parentf312b3402a5ddece433a0a0d24070b7c262df218 (diff)
downloadfreetype2-40676afc4ce15fbcb4f73e1b7016ebfb3e7b5390.tar.gz
[sfnt] Fix handling of PS names for Variation Fonts.
* src/sfnt/sfdriver.c (get_win_string, get_apple_string): Continue construction of string if an invalid character is encountered. Fixes #1218.
-rw-r--r--src/sfnt/sfdriver.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/sfnt/sfdriver.c b/src/sfnt/sfdriver.c
index 762883db5..1e573fb08 100644
--- a/src/sfnt/sfdriver.c
+++ b/src/sfnt/sfdriver.c
@@ -523,15 +523,14 @@
FT_TRACE0(( "get_win_string:"
" Character 0x%X invalid in PS name string\n",
((unsigned)p[0])*256 + (unsigned)p[1] ));
- break;
+ continue;
}
}
- if ( !len )
- *r = '\0';
+ *r = '\0';
FT_FRAME_EXIT();
- if ( !len )
+ if ( r != result )
return result;
get_win_string_error:
@@ -580,15 +579,14 @@
FT_TRACE0(( "get_apple_string:"
" Character `%c' (0x%X) invalid in PS name string\n",
*p, *p ));
- break;
+ continue;
}
}
- if ( !len )
- *r = '\0';
+ *r = '\0';
FT_FRAME_EXIT();
- if ( !len )
+ if ( r != result )
return result;
get_apple_string_error: