Use aggregate init to avoid memset in CFGAS_FontMgr.
memset(), of various flavors, is an unsafe libc function.
Change-Id: I7020869462f322c04269c53c52c53a9151ace43a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/129810
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Thomas Sepez <tsepez@google.com>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp
index 507e09c..90d6b2d 100644
--- a/xfa/fgas/font/cfgas_fontmgr.cpp
+++ b/xfa/fgas/font/cfgas_fontmgr.cpp
@@ -531,7 +531,8 @@
// https://bugs.chromium.org/p/pdfium/issues/detail?id=690
FXFT_StreamRec* ftStream =
static_cast<FXFT_StreamRec*>(ft_scalloc(sizeof(FXFT_StreamRec), 1));
- UNSAFE_TODO(FXSYS_memset(ftStream, 0, sizeof(FXFT_StreamRec)));
+ *ftStream = {}; // Aggregate initialization.
+ static_assert(std::is_aggregate_v<std::remove_pointer_t<decltype(ftStream)>>);
ftStream->base = nullptr;
ftStream->descriptor.pointer = static_cast<void*>(pFontStream.Get());
ftStream->pos = 0;