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;