Index: third_party/ots/src/cmap.cc |
diff --git a/third_party/ots/src/cmap.cc b/third_party/ots/src/cmap.cc |
index a2383008e4b927daaab496f0004dc3a64daaf6de..b1bf5fd159f664f6e9a0385c35917bab3e7c2076 100644 |
--- a/third_party/ots/src/cmap.cc |
+++ b/third_party/ots/src/cmap.cc |
@@ -1023,6 +1023,10 @@ |
} |
const off_t table_end = out->Tell(); |
+ // We might have hanging bytes from the above's checksum which the OTSStream |
+ // then merges into the table of offsets. |
+ OTSStream::ChecksumState saved_checksum = out->SaveChecksumState(); |
+ out->ResetChecksum(); |
// Now seek back and write the table of offsets |
if (!out->Seek(record_offset)) { |
@@ -1088,6 +1092,7 @@ |
if (!out->Seek(table_end)) { |
return OTS_FAILURE(); |
} |
+ out->RestoreChecksum(saved_checksum); |
return true; |
} |