Enforce alignment in SkDescriptor deserialization

SkDescriptor::Alloc asserts on this.

Bug: chromium:942430
Change-Id: Iad28f02bd261b03b5cff33bd1959946787c4087f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/201602
Auto-Submit: Adrienne Walker <enne@chromium.org>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
(cherry picked from commit 5d3ddcb6d8beca098297b644e211277f2ac12f43)
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/202342
Commit-Queue: Adrienne Walker <enne@chromium.org>
Reviewed-by: Adrienne Walker <enne@chromium.org>
diff --git a/src/core/SkRemoteGlyphCache.cpp b/src/core/SkRemoteGlyphCache.cpp
index 68033cd..f192ed9 100644
--- a/src/core/SkRemoteGlyphCache.cpp
+++ b/src/core/SkRemoteGlyphCache.cpp
@@ -127,6 +127,7 @@
         uint32_t descLength = 0u;
         if (!read<uint32_t>(&descLength)) return false;
         if (descLength < sizeof(SkDescriptor)) return false;
+        if (descLength != SkAlign4(descLength)) return false;
 
         auto* result = this->ensureAtLeast(descLength, alignof(SkDescriptor));
         if (!result) return false;