diff options
author | Ben Wagner <bungeman@chromium.org> | 2023-04-19 13:48:59 -0400 |
---|---|---|
committer | Ben Wagner <bungeman@chromium.org> | 2023-04-19 13:48:59 -0400 |
commit | 8154d8e2be329b1a0a145faae7d5fe0dd6aa7a7a (patch) | |
tree | dc32719c75e523a2f95fac39204b0da0e09cf999 | |
parent | c4fe77c3f072fab930267f95510562e7aeb03302 (diff) | |
download | freetype2-8154d8e2be329b1a0a145faae7d5fe0dd6aa7a7a.tar.gz |
[services] FT_Size_Reset_Func to return FT_Error
The `MetricsVariations` `FT_Size_Reset_Func` is currently defined to
return `void`, but the implementations return `FT_Error`. Even though
the pointers passed will be the same at runtime, calling a function
through a pointer of a different type from the original function pointer
type is undefined behavior. This may be caught at runtime by Control
Flow Integrity with something like clang's `cfi-icall`.
Issue: https://crbug.com/1433651
* include/freetype/internal/services/svmetric.h (FT_Size_Reset_Func):
return `FT_Error` instead of `void`.
-rw-r--r-- | include/freetype/internal/services/svmetric.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/freetype/internal/services/svmetric.h b/include/freetype/internal/services/svmetric.h index d067dc977..167617ebb 100644 --- a/include/freetype/internal/services/svmetric.h +++ b/include/freetype/internal/services/svmetric.h @@ -77,7 +77,7 @@ FT_BEGIN_HEADER typedef void (*FT_Metrics_Adjust_Func)( FT_Face face ); - typedef void + typedef FT_Error (*FT_Size_Reset_Func)( FT_Size size ); |