1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500
|
From 196006b57e14890ed91df7bb22afbaa439ac1a04 Mon Sep 17 00:00:00 2001
From: Olabode Anise <anise@chromium.org>
Date: Fri, 18 Jun 2021 20:58:06 +0000
Subject: [PATCH] switching to protobuf_lite and using const instead of
absl::GetFlag
---
.../maldoca/src/maldoca/base/status_proto.proto | 1 +
third_party/maldoca/src/maldoca/ole/mso.cc | 16 ++++++++++++----
third_party/maldoca/src/maldoca/ole/oss_utils.cc | 8 ++++++--
third_party/maldoca/src/maldoca/ole/ppt.cc | 9 ++++++---
.../maldoca/ole/proto/excel4_extraction.proto | 2 ++
.../maldoca/ole/proto/extract_vba_settings.proto | 2 ++
.../maldoca/src/maldoca/ole/proto/office.proto | 3 ++-
.../maldoca/src/maldoca/ole/proto/ole.proto | 2 ++
.../ole/proto/ole_to_proto_settings.proto | 2 ++
.../maldoca/src/maldoca/ole/proto/ooxml.proto | 2 ++
.../ole/proto/ooxml_to_proto_settings.proto | 2 ++
.../src/maldoca/ole/proto/vba_extraction.proto | 2 ++
.../maldoca/src/maldoca/ole/vba_extract.cc | 15 +++++++++++----
.../src/maldoca/pdf_parser/proto/adobe_js.proto | 2 ++
.../pdf_parser/proto/exporting_packet.proto | 2 ++
.../pdf_parser/proto/features_packet.proto | 2 ++
.../maldoca/pdf_parser/proto/parser_packet.proto | 2 ++
.../maldoca/pdf_parser/proto/pdf_assets.proto | 2 ++
.../maldoca/pdf_parser/proto/pdf_feature.proto | 2 ++
.../maldoca/pdf_parser/proto/pdfium_result.proto | 2 ++
.../src/maldoca/service/proto/doc_type.proto | 2 ++
.../service/proto/document_features.proto | 2 ++
.../service/proto/exported_features.proto | 2 ++
.../maldoca/service/proto/maldoca_service.proto | 2 ++
.../maldoca/service/proto/parsed_document.proto | 2 ++
.../service/proto/processing_config.proto | 2 ++
.../src/maldoca/vba/antivirus/vba_feature.proto | 2 ++
27 files changed, 80 insertions(+), 14 deletions(-)
diff --git a/third_party/maldoca/src/maldoca/base/status_proto.proto b/third_party/maldoca/src/maldoca/base/status_proto.proto
index 0a28082fe445..6eeca1c0d20b 100644
--- a/third_party/maldoca/src/maldoca/base/status_proto.proto
+++ b/third_party/maldoca/src/maldoca/base/status_proto.proto
@@ -20,6 +20,7 @@ syntax = "proto2";
package maldoca;
option java_multiple_files = true;
+option optimize_for = LITE_RUNTIME;
// Maldoca specific error code for more context on the errors
enum MaldocaErrorCode {
diff --git a/third_party/maldoca/src/maldoca/ole/mso.cc b/third_party/maldoca/src/maldoca/ole/mso.cc
index 7b0943285061..599444d5040f 100644
--- a/third_party/maldoca/src/maldoca/ole/mso.cc
+++ b/third_party/maldoca/src/maldoca/ole/mso.cc
@@ -33,12 +33,16 @@
#include "zlib/include/zlib.h"
#endif
+#ifdef MALDOCA_IN_CHROMIUM
+static const int32_t mso_deflated_max_file_size = 2 << 20;
+#else
ABSL_FLAG(int32_t, mso_deflated_max_file_size, 2 << 20,
"The maximum deflated MSO file size (in bytes) we are willing to "
"process. The Office 2003 XML file format stores VBA code in "
"OLE2 files using the ActiveMime/MSO format which is zlib "
"compressed. We don't easily know in advance the size of "
"the deflated MSO so we use a reasonable limit instead.");
+#endif
namespace maldoca {
using utils::XmlCharDeleter;
@@ -142,11 +146,15 @@ bool MSOContent::GetOLE2Data(absl::string_view mso, std::string *ole2) {
offsets.insert(std::pair<uint16_t, bool>(0x32, true));
offsets.insert(std::pair<uint16_t, bool>(0x22a, true));
- // We don't know beforehand the size of the output and we can't
- // easily compute with the kind of zlib stream we're going to
- // process, so we arbitrarily set it to a large enough limit - we
- // will declare an error if that limit is insufficient.
+// We don't know beforehand the size of the output and we can't
+// easily compute with the kind of zlib stream we're going to
+// process, so we arbitrarily set it to a large enough limit - we
+// will declare an error if that limit is insufficient.
+#ifdef MALDOCA_IN_CHROMIUM
+ uLongf dest_length = mso_deflated_max_file_size;
+#else
uLongf dest_length = absl::GetFlag(FLAGS_mso_deflated_max_file_size);
+#endif
std::unique_ptr<char[]> dest(new char[dest_length]);
for (auto const ¤t_offset : offsets) {
diff --git a/third_party/maldoca/src/maldoca/ole/oss_utils.cc b/third_party/maldoca/src/maldoca/ole/oss_utils.cc
index 774b09e581de..faf7992bb707 100644
--- a/third_party/maldoca/src/maldoca/ole/oss_utils.cc
+++ b/third_party/maldoca/src/maldoca/ole/oss_utils.cc
@@ -28,8 +28,12 @@
#include "libxml/SAX2.h"
#include "libxml/parserInternals.h"
+#ifdef MALDOCA_CHROME
+const static int32_t default_max_proto_recursion = 400;
+#else
ABSL_FLAG(int32_t, default_max_proto_recursion, 400,
"Default max allowed recursion in proto parsing from text.");
+#endif
namespace maldoca {
namespace utils {
@@ -538,8 +542,8 @@ bool ParseProtoFromText(std::string text, int32_t max_recursion,
bool ParseProtoFromText(std::string text,
::google::protobuf::Message* message) {
- return ParseProtoFromText(
- text, absl::GetFlag(FLAGS_default_max_proto_recursion), message, nullptr);
+ return ParseProtoFromText(text, default_max_proto_recursion, message,
+ nullptr);
}
} // namespace utils
} // namespace maldoca
diff --git a/third_party/maldoca/src/maldoca/ole/ppt.cc b/third_party/maldoca/src/maldoca/ole/ppt.cc
index 5ff55eeb3289..82520e7ce774 100644
--- a/third_party/maldoca/src/maldoca/ole/ppt.cc
+++ b/third_party/maldoca/src/maldoca/ole/ppt.cc
@@ -32,6 +32,9 @@
#endif
#include "zlibwrapper/zlibwrapper.h"
+#ifdef MALDOCA_IN_CHROMIUM
+const static int32_t ppt_deflated_max_vba_project_size = 2 << 20;
+#else
ABSL_FLAG(
int32_t, ppt_deflated_max_vba_project_size, 2 << 20,
"The maximum deflated VBA Project Storage size (in bytes) we are "
@@ -40,6 +43,7 @@ ABSL_FLAG(
"which can be zlib compressed. The compressed object storage "
"header defines a decompressed content size, which we set the maximum "
"value of with this flag.");
+#endif
namespace maldoca {
@@ -140,14 +144,13 @@ StatusOr<std::string> VBAProjectStorage::ExtractCompressedContent(
}
// Resource check
- if (decompressed_size >
- absl::GetFlag(FLAGS_ppt_deflated_max_vba_project_size)) {
+ if (decompressed_size > ppt_deflated_max_vba_project_size) {
auto status = absl::FailedPreconditionError(absl::StrCat(
"VBA Project Compressed Storage header defines a decompressed "
"size of ",
decompressed_size,
", which is larger than the allowed decompressed size: ",
- absl::GetFlag(FLAGS_ppt_deflated_max_vba_project_size)));
+ ppt_deflated_max_vba_project_size));
LOG(WARNING) << status.message();
return status;
}
diff --git a/third_party/maldoca/src/maldoca/ole/proto/excel4_extraction.proto b/third_party/maldoca/src/maldoca/ole/proto/excel4_extraction.proto
index af1e9f23b197..1d3458efb9a3 100644
--- a/third_party/maldoca/src/maldoca/ole/proto/excel4_extraction.proto
+++ b/third_party/maldoca/src/maldoca/ole/proto/excel4_extraction.proto
@@ -20,6 +20,8 @@ syntax = "proto2";
package maldoca;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/ole/excel4/ast.proto";
// Contains Excel 4.0 macros parsed into an AST.
diff --git a/third_party/maldoca/src/maldoca/ole/proto/extract_vba_settings.proto b/third_party/maldoca/src/maldoca/ole/proto/extract_vba_settings.proto
index 6266616a5e5f..53a06498e0a5 100644
--- a/third_party/maldoca/src/maldoca/ole/proto/extract_vba_settings.proto
+++ b/third_party/maldoca/src/maldoca/ole/proto/extract_vba_settings.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca.vba;
+option optimize_for = LITE_RUNTIME;
+
enum VBAExtractionMethod {
EXTRACTION_TYPE_UNKNOWN = 0;
// Same as ExtractVBAFromString, but OOXML content is not
diff --git a/third_party/maldoca/src/maldoca/ole/proto/office.proto b/third_party/maldoca/src/maldoca/ole/proto/office.proto
index 6e596062d157..2e0b6f6f6f9a 100644
--- a/third_party/maldoca/src/maldoca/ole/proto/office.proto
+++ b/third_party/maldoca/src/maldoca/ole/proto/office.proto
@@ -18,7 +18,8 @@ syntax = "proto2";
package maldoca.office;
-;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/ole/proto/excel4_extraction.proto";
import "maldoca/ole/proto/ole.proto";
import "maldoca/ole/proto/ooxml.proto";
diff --git a/third_party/maldoca/src/maldoca/ole/proto/ole.proto b/third_party/maldoca/src/maldoca/ole/proto/ole.proto
index c22e7b9ce03a..fc6ce727eecb 100644
--- a/third_party/maldoca/src/maldoca/ole/proto/ole.proto
+++ b/third_party/maldoca/src/maldoca/ole/proto/ole.proto
@@ -18,6 +18,8 @@ syntax = "proto2";
package maldoca.ole;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/ole/proto/excel4_extraction.proto";
import "maldoca/ole/proto/vba_extraction.proto";
diff --git a/third_party/maldoca/src/maldoca/ole/proto/ole_to_proto_settings.proto b/third_party/maldoca/src/maldoca/ole/proto/ole_to_proto_settings.proto
index b26c5c3cddd1..4b23a019b65b 100644
--- a/third_party/maldoca/src/maldoca/ole/proto/ole_to_proto_settings.proto
+++ b/third_party/maldoca/src/maldoca/ole/proto/ole_to_proto_settings.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca.ole;
+option optimize_for = LITE_RUNTIME;
+
message OleToProtoSettings {
optional bool include_summary_information = 1 [default = true];
optional bool include_vba_code = 2 [default = true];
diff --git a/third_party/maldoca/src/maldoca/ole/proto/ooxml.proto b/third_party/maldoca/src/maldoca/ole/proto/ooxml.proto
index ff10f9c7e906..7ae8d62ac3ed 100644
--- a/third_party/maldoca/src/maldoca/ole/proto/ooxml.proto
+++ b/third_party/maldoca/src/maldoca/ole/proto/ooxml.proto
@@ -18,6 +18,8 @@ syntax = "proto2";
package maldoca.ooxml;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/ole/proto/ole.proto";
// File entry inside the OOXML archive.
diff --git a/third_party/maldoca/src/maldoca/ole/proto/ooxml_to_proto_settings.proto b/third_party/maldoca/src/maldoca/ole/proto/ooxml_to_proto_settings.proto
index 556f840892f8..eac682e04f61 100644
--- a/third_party/maldoca/src/maldoca/ole/proto/ooxml_to_proto_settings.proto
+++ b/third_party/maldoca/src/maldoca/ole/proto/ooxml_to_proto_settings.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca.ooxml;
+option optimize_for = LITE_RUNTIME;
+
message OoxmlToProtoSettings {
// Extract summary information, document summary information and
// relationships from OOXML. Also adds OLE summary information for OLE files
diff --git a/third_party/maldoca/src/maldoca/ole/proto/vba_extraction.proto b/third_party/maldoca/src/maldoca/ole/proto/vba_extraction.proto
index c68d52d552fb..e9f4eea167cf 100644
--- a/third_party/maldoca/src/maldoca/ole/proto/vba_extraction.proto
+++ b/third_party/maldoca/src/maldoca/ole/proto/vba_extraction.proto
@@ -20,6 +20,8 @@ syntax = "proto2";
package maldoca;
+option optimize_for = LITE_RUNTIME;
+
// A VBACode chunk is the code iself, its filename and the path under
// which the file was stored in the OLE input.
message VBACodeChunk {
diff --git a/third_party/maldoca/src/maldoca/ole/vba_extract.cc b/third_party/maldoca/src/maldoca/ole/vba_extract.cc
index 603e7413a79d..e7c61e33e59e 100644
--- a/third_party/maldoca/src/maldoca/ole/vba_extract.cc
+++ b/third_party/maldoca/src/maldoca/ole/vba_extract.cc
@@ -63,6 +63,11 @@ static const uint32_t kSupportAllButOOXMLInputType =
static const uint32_t kSupportAllInputType =
(kSupportAllButOOXMLInputType | TRY_OOXML);
+#ifdef MALDOCA_IN_CHROMIUM
+static const int32_t try_input_type = -1;
+static bool extract_malformed_content = true;
+static bool ignore_archive_reader_warning = true;
+#else
ABSL_FLAG(int32_t, input_type, -1,
"This flag is a bitwise combination of TRY_* enum values and "
"can be set to specify what type of input can be expected "
@@ -79,6 +84,7 @@ ABSL_FLAG(bool, ignore_archive_reader_warning, true,
"This flag specifies whether to ignore warning from libarchive. "
"For instance, ignore when there is a mismatch between number of "
"decompressed bytes specified vs actual.");
+#endif
namespace maldoca {
@@ -276,7 +282,8 @@ absl::Status ExtractFromOLE2String(absl::string_view content,
absl::Status status = ExtractFromOLE2StringInternal(
content, &header, &fat, &root, &dir_entries, &extracted_indices,
&directory_stream, &code_modules, dir, code_chunks);
- if (!absl::GetFlag(FLAGS_extract_malformed_content)) {
+
+ if (!extract_malformed_content) {
return status;
} else if (!status.ok()) {
DLOG(INFO) << "ExtractDirectoryAndVBAFromString returned: " << status;
@@ -326,7 +333,8 @@ static absl::Status ExtractFromOOXMLContentInternal(
return absl::FailedPreconditionError(
"Cannot initialize zip ArchiveHandler");
}
- handler.SetIgnoreWarning(absl::GetFlag(FLAGS_ignore_archive_reader_warning));
+
+ handler.SetIgnoreWarning(ignore_archive_reader_warning);
DLOG(INFO) << "Evaluating " << original_filename << " (" << content.length()
<< " bytes) as a OOXML file";
@@ -567,8 +575,7 @@ void ExtractDirectoryAndVBAFromString(absl::string_view content,
std::string *error) {
error->clear();
uint32_t input_type =
- (absl::GetFlag(FLAGS_input_type) == -1 ? kSupportAllInputType
- : absl::GetFlag(FLAGS_input_type));
+ (try_input_type == -1 ? kSupportAllInputType : try_input_type);
auto status = ExtractFromStringInternal(input_type, "", content, directory,
code_chunks);
error->assign(std::string(status.message()));
diff --git a/third_party/maldoca/src/maldoca/pdf_parser/proto/adobe_js.proto b/third_party/maldoca/src/maldoca/pdf_parser/proto/adobe_js.proto
index 1d1468ba6d1a..023db9ddcee0 100644
--- a/third_party/maldoca/src/maldoca/pdf_parser/proto/adobe_js.proto
+++ b/third_party/maldoca/src/maldoca/pdf_parser/proto/adobe_js.proto
@@ -17,6 +17,8 @@ syntax = "proto2";
package maldoca.pdf;
+option optimize_for = LITE_RUNTIME;
+
// Definition for individual Adobe JS object.
// For example see the May 2015 Adobe documentation which references object
// names, methods, and properties.
diff --git a/third_party/maldoca/src/maldoca/pdf_parser/proto/exporting_packet.proto b/third_party/maldoca/src/maldoca/pdf_parser/proto/exporting_packet.proto
index c0b566595826..f26def3e41fc 100644
--- a/third_party/maldoca/src/maldoca/pdf_parser/proto/exporting_packet.proto
+++ b/third_party/maldoca/src/maldoca/pdf_parser/proto/exporting_packet.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca.pdf;
+option optimize_for = LITE_RUNTIME;
+
import "tensorflow/core/example/example.proto";
message ExportingPacket {
diff --git a/third_party/maldoca/src/maldoca/pdf_parser/proto/features_packet.proto b/third_party/maldoca/src/maldoca/pdf_parser/proto/features_packet.proto
index a73877fe0c44..1fd65185de47 100644
--- a/third_party/maldoca/src/maldoca/pdf_parser/proto/features_packet.proto
+++ b/third_party/maldoca/src/maldoca/pdf_parser/proto/features_packet.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca.pdf;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/pdf_parser/proto/pdf_feature.proto";
message FeaturesPacket {
diff --git a/third_party/maldoca/src/maldoca/pdf_parser/proto/parser_packet.proto b/third_party/maldoca/src/maldoca/pdf_parser/proto/parser_packet.proto
index e61fdd995b50..335acdd55ede 100644
--- a/third_party/maldoca/src/maldoca/pdf_parser/proto/parser_packet.proto
+++ b/third_party/maldoca/src/maldoca/pdf_parser/proto/parser_packet.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca.pdf;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/pdf_parser/proto/pdfium_result.proto";
message ParserPacket {
diff --git a/third_party/maldoca/src/maldoca/pdf_parser/proto/pdf_assets.proto b/third_party/maldoca/src/maldoca/pdf_parser/proto/pdf_assets.proto
index 6634471e459b..16d7ec92b155 100644
--- a/third_party/maldoca/src/maldoca/pdf_parser/proto/pdf_assets.proto
+++ b/third_party/maldoca/src/maldoca/pdf_parser/proto/pdf_assets.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca.pdf;
+option optimize_for = LITE_RUNTIME;
+
// The request used by the engine interface to instruct which signals should be
// extracted.
message PdfAssetsRequest {
diff --git a/third_party/maldoca/src/maldoca/pdf_parser/proto/pdf_feature.proto b/third_party/maldoca/src/maldoca/pdf_parser/proto/pdf_feature.proto
index 18db5b422725..47468a4f8bcc 100644
--- a/third_party/maldoca/src/maldoca/pdf_parser/proto/pdf_feature.proto
+++ b/third_party/maldoca/src/maldoca/pdf_parser/proto/pdf_feature.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca.pdf;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/pdf_parser/proto/pdf_assets.proto";
// Adobe Javascript functions in ADOBE_$ObjectName_$Method format.
diff --git a/third_party/maldoca/src/maldoca/pdf_parser/proto/pdfium_result.proto b/third_party/maldoca/src/maldoca/pdf_parser/proto/pdfium_result.proto
index 122337fcac8f..74b0752451be 100644
--- a/third_party/maldoca/src/maldoca/pdf_parser/proto/pdfium_result.proto
+++ b/third_party/maldoca/src/maldoca/pdf_parser/proto/pdfium_result.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca.pdf;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/pdf_parser/proto/pdf_assets.proto";
enum ExtractionQuota {
diff --git a/third_party/maldoca/src/maldoca/service/proto/doc_type.proto b/third_party/maldoca/src/maldoca/service/proto/doc_type.proto
index 39ad252ad231..6479a8402bab 100644
--- a/third_party/maldoca/src/maldoca/service/proto/doc_type.proto
+++ b/third_party/maldoca/src/maldoca/service/proto/doc_type.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca;
+option optimize_for = LITE_RUNTIME;
+
enum DocType {
UNKNOWN_TYPE = 0;
diff --git a/third_party/maldoca/src/maldoca/service/proto/document_features.proto b/third_party/maldoca/src/maldoca/service/proto/document_features.proto
index 8e58c22f1791..0f1b1dcf9675 100644
--- a/third_party/maldoca/src/maldoca/service/proto/document_features.proto
+++ b/third_party/maldoca/src/maldoca/service/proto/document_features.proto
@@ -18,6 +18,8 @@ syntax = "proto2";
package maldoca;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/pdf_parser/proto/pdf_feature.proto";
import "maldoca/service/proto/doc_type.proto";
import "maldoca/vba/antivirus/vba_feature.proto";
diff --git a/third_party/maldoca/src/maldoca/service/proto/exported_features.proto b/third_party/maldoca/src/maldoca/service/proto/exported_features.proto
index 6d933e5208f2..159b6fcdad32 100644
--- a/third_party/maldoca/src/maldoca/service/proto/exported_features.proto
+++ b/third_party/maldoca/src/maldoca/service/proto/exported_features.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/service/proto/doc_type.proto";
import "tensorflow/core/example/example.proto";
diff --git a/third_party/maldoca/src/maldoca/service/proto/maldoca_service.proto b/third_party/maldoca/src/maldoca/service/proto/maldoca_service.proto
index daab712a3284..aedc891ef496 100644
--- a/third_party/maldoca/src/maldoca/service/proto/maldoca_service.proto
+++ b/third_party/maldoca/src/maldoca/service/proto/maldoca_service.proto
@@ -21,6 +21,8 @@ syntax = "proto2";
package maldoca;
+option optimize_for = LITE_RUNTIME;
+
option java_multiple_files = true;
// Expected usage:
diff --git a/third_party/maldoca/src/maldoca/service/proto/parsed_document.proto b/third_party/maldoca/src/maldoca/service/proto/parsed_document.proto
index 359f7f8bb159..1678e37fe21c 100644
--- a/third_party/maldoca/src/maldoca/service/proto/parsed_document.proto
+++ b/third_party/maldoca/src/maldoca/service/proto/parsed_document.proto
@@ -18,6 +18,8 @@ syntax = "proto2";
package maldoca;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/ole/proto/office.proto";
import "maldoca/pdf_parser/proto/pdfium_result.proto";
import "maldoca/service/proto/doc_type.proto";
diff --git a/third_party/maldoca/src/maldoca/service/proto/processing_config.proto b/third_party/maldoca/src/maldoca/service/proto/processing_config.proto
index d6a14458f319..1644a3270961 100644
--- a/third_party/maldoca/src/maldoca/service/proto/processing_config.proto
+++ b/third_party/maldoca/src/maldoca/service/proto/processing_config.proto
@@ -18,6 +18,8 @@ syntax = "proto2";
package maldoca;
+option optimize_for = LITE_RUNTIME;
+
import "maldoca/ole/proto/extract_vba_settings.proto";
import "maldoca/ole/proto/ole_to_proto_settings.proto";
import "maldoca/ole/proto/ooxml_to_proto_settings.proto";
diff --git a/third_party/maldoca/src/maldoca/vba/antivirus/vba_feature.proto b/third_party/maldoca/src/maldoca/vba/antivirus/vba_feature.proto
index 3e8cca507377..ee93f52c4da9 100644
--- a/third_party/maldoca/src/maldoca/vba/antivirus/vba_feature.proto
+++ b/third_party/maldoca/src/maldoca/vba/antivirus/vba_feature.proto
@@ -16,6 +16,8 @@ syntax = "proto2";
package maldoca;
+option optimize_for = LITE_RUNTIME;
+
// Suspicious external dlls.
// Example:
// This means the VBA code wants to call the "LoadLibraryW" function in
--
2.32.0.288.g62a8d224e6-goog
|