File: 0003-switching-to-protobuf_lite-and-using-const-instead-o.patch

package info (click to toggle)
chromium 120.0.6099.224-1~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 6,112,112 kB
  • sloc: cpp: 32,907,025; ansic: 8,148,123; javascript: 3,679,536; python: 2,031,248; asm: 959,718; java: 804,675; xml: 617,256; sh: 111,417; objc: 100,835; perl: 88,443; cs: 53,032; makefile: 29,579; fortran: 24,137; php: 21,162; tcl: 21,147; sql: 20,809; ruby: 17,735; pascal: 12,864; yacc: 8,045; lisp: 3,388; lex: 1,323; ada: 727; awk: 329; jsp: 267; csh: 117; exp: 43; sed: 37
file content (500 lines) | stat: -rw-r--r-- 21,550 bytes parent folder | download | duplicates (3)
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 &current_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