diff options
author | Werner Lemberg <wl@gnu.org> | 2023-04-25 09:30:30 +0200 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2023-04-25 11:47:18 +0200 |
commit | 40676afc4ce15fbcb4f73e1b7016ebfb3e7b5390 (patch) | |
tree | 849bd5c04448fc2b40f5250f1ed362e2b5f972ef | |
parent | f312b3402a5ddece433a0a0d24070b7c262df218 (diff) | |
download | freetype2-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.c | 14 |
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: |