rubycc 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +56 -0
  3. data/LICENSE.txt +21 -0
  4. data/NOTICE +52 -0
  5. data/README.md +208 -0
  6. data/data/README.md +117 -0
  7. data/data/r10_corpus_scan.json +4082 -0
  8. data/data/r10_manual_classification.json +5342 -0
  9. data/data/r10_verification_m4a.json +1531 -0
  10. data/data/r10_verification_m4b.json +1818 -0
  11. data/data/r10_verification_m4c.json +1489 -0
  12. data/data/r10_verification_m4d.json +318 -0
  13. data/data/r10_verification_rbs.json +192 -0
  14. data/data/verified_gems.json +397 -0
  15. data/exe/rmake +16 -0
  16. data/exe/rubycc +9 -0
  17. data/exe/rubycc-ar +114 -0
  18. data/exe/rubycc-doctor +14 -0
  19. data/exe/rubycc-pkgconf +8 -0
  20. data/include/float.h +87 -0
  21. data/include/iso646.h +18 -0
  22. data/include/libc/alloca.h +18 -0
  23. data/include/libc/arpa/inet.h +61 -0
  24. data/include/libc/assert.h +43 -0
  25. data/include/libc/dirent.h +72 -0
  26. data/include/libc/dlfcn.h +58 -0
  27. data/include/libc/features.h +205 -0
  28. data/include/libc/glibc/aarch64/ctype.h +108 -0
  29. data/include/libc/glibc/aarch64/endian.h +54 -0
  30. data/include/libc/glibc/aarch64/errno.h +154 -0
  31. data/include/libc/glibc/aarch64/fcntl.h +144 -0
  32. data/include/libc/glibc/aarch64/inttypes.h +182 -0
  33. data/include/libc/glibc/aarch64/limits.h +63 -0
  34. data/include/libc/glibc/aarch64/pthread.h +131 -0
  35. data/include/libc/glibc/aarch64/setjmp.h +84 -0
  36. data/include/libc/glibc/aarch64/stdint.h +174 -0
  37. data/include/libc/glibc/aarch64/sys/epoll.h +88 -0
  38. data/include/libc/glibc/aarch64/sys/fcntl.h +19 -0
  39. data/include/libc/glibc/aarch64/sys/select.h +75 -0
  40. data/include/libc/glibc/aarch64/sys/stat.h +136 -0
  41. data/include/libc/glibc/aarch64/sys/syscall.h +167 -0
  42. data/include/libc/glibc/aarch64/sys/time.h +74 -0
  43. data/include/libc/glibc/aarch64/sys/types.h +127 -0
  44. data/include/libc/glibc/aarch64/time.h +113 -0
  45. data/include/libc/glibc/x86_64/ctype.h +108 -0
  46. data/include/libc/glibc/x86_64/endian.h +54 -0
  47. data/include/libc/glibc/x86_64/errno.h +154 -0
  48. data/include/libc/glibc/x86_64/fcntl.h +134 -0
  49. data/include/libc/glibc/x86_64/inttypes.h +182 -0
  50. data/include/libc/glibc/x86_64/limits.h +61 -0
  51. data/include/libc/glibc/x86_64/pthread.h +111 -0
  52. data/include/libc/glibc/x86_64/setjmp.h +82 -0
  53. data/include/libc/glibc/x86_64/stdint.h +163 -0
  54. data/include/libc/glibc/x86_64/sys/epoll.h +91 -0
  55. data/include/libc/glibc/x86_64/sys/fcntl.h +19 -0
  56. data/include/libc/glibc/x86_64/sys/select.h +75 -0
  57. data/include/libc/glibc/x86_64/sys/stat.h +130 -0
  58. data/include/libc/glibc/x86_64/sys/syscall.h +188 -0
  59. data/include/libc/glibc/x86_64/sys/time.h +74 -0
  60. data/include/libc/glibc/x86_64/sys/types.h +123 -0
  61. data/include/libc/glibc/x86_64/time.h +113 -0
  62. data/include/libc/grp.h +50 -0
  63. data/include/libc/langinfo.h +126 -0
  64. data/include/libc/link.h +18 -0
  65. data/include/libc/locale.h +83 -0
  66. data/include/libc/math.h +191 -0
  67. data/include/libc/netinet/in.h +126 -0
  68. data/include/libc/netinet/tcp.h +44 -0
  69. data/include/libc/poll.h +46 -0
  70. data/include/libc/pwd.h +58 -0
  71. data/include/libc/regex.h +53 -0
  72. data/include/libc/sched.h +35 -0
  73. data/include/libc/signal.h +204 -0
  74. data/include/libc/stdio.h +157 -0
  75. data/include/libc/stdlib.h +92 -0
  76. data/include/libc/string.h +74 -0
  77. data/include/libc/strings.h +25 -0
  78. data/include/libc/sys/cdefs.h +126 -0
  79. data/include/libc/sys/inotify.h +111 -0
  80. data/include/libc/sys/ioctl.h +36 -0
  81. data/include/libc/sys/mman.h +65 -0
  82. data/include/libc/sys/param.h +41 -0
  83. data/include/libc/sys/resource.h +109 -0
  84. data/include/libc/sys/socket.h +167 -0
  85. data/include/libc/sys/statfs.h +82 -0
  86. data/include/libc/sys/timerfd.h +55 -0
  87. data/include/libc/sys/uio.h +40 -0
  88. data/include/libc/sys/un.h +25 -0
  89. data/include/libc/sys/utsname.h +35 -0
  90. data/include/libc/sys/wait.h +135 -0
  91. data/include/libc/termios.h +179 -0
  92. data/include/libc/unistd.h +194 -0
  93. data/include/stdalign.h +16 -0
  94. data/include/stdarg.h +31 -0
  95. data/include/stdatomic.h +158 -0
  96. data/include/stdbool.h +15 -0
  97. data/include/stdckdint.h +28 -0
  98. data/include/stddef.h +60 -0
  99. data/include/stdnoreturn.h +18 -0
  100. data/include/x86intrin.h +16 -0
  101. data/lib/rubycc/backend/aarch64.rb +1724 -0
  102. data/lib/rubycc/backend/x86_64.rb +1369 -0
  103. data/lib/rubycc/compile_error.rb +36 -0
  104. data/lib/rubycc/compiler.rb +305 -0
  105. data/lib/rubycc/doctor/builder.rb +151 -0
  106. data/lib/rubycc/doctor/cli.rb +190 -0
  107. data/lib/rubycc/doctor/fetcher.rb +84 -0
  108. data/lib/rubycc/doctor/gemfile.rb +115 -0
  109. data/lib/rubycc/doctor/verified_gems.rb +114 -0
  110. data/lib/rubycc/doctor.rb +16 -0
  111. data/lib/rubycc/driver.rb +463 -0
  112. data/lib/rubycc/front/ast.rb +528 -0
  113. data/lib/rubycc/front/constant_evaluator.rb +631 -0
  114. data/lib/rubycc/front/initializer_resolver.rb +592 -0
  115. data/lib/rubycc/front/lexeme_reader.rb +460 -0
  116. data/lib/rubycc/front/lexer.rb +232 -0
  117. data/lib/rubycc/front/parser.rb +4122 -0
  118. data/lib/rubycc/front/token.rb +49 -0
  119. data/lib/rubycc/ir/call_convention.rb +486 -0
  120. data/lib/rubycc/ir/generator.rb +6036 -0
  121. data/lib/rubycc/ir/ir.rb +417 -0
  122. data/lib/rubycc/link/compat_runtime.rb +89 -0
  123. data/lib/rubycc/link/errors.rb +13 -0
  124. data/lib/rubycc/link/executable_linker.rb +405 -0
  125. data/lib/rubycc/link/library_resolver.rb +437 -0
  126. data/lib/rubycc/link/partial_linker.rb +546 -0
  127. data/lib/rubycc/link/shared_linker.rb +1732 -0
  128. data/lib/rubycc/mkmf_shim.rb +83 -0
  129. data/lib/rubycc/objfile/ar_archive.rb +437 -0
  130. data/lib/rubycc/objfile/elf_reader.rb +646 -0
  131. data/lib/rubycc/objfile/elf_writer.rb +891 -0
  132. data/lib/rubycc/objfile/relocatable_writer.rb +376 -0
  133. data/lib/rubycc/pkgconf/cli.rb +139 -0
  134. data/lib/rubycc/pkgconf/errors.rb +39 -0
  135. data/lib/rubycc/pkgconf/model.rb +28 -0
  136. data/lib/rubycc/pkgconf/parser.rb +109 -0
  137. data/lib/rubycc/pkgconf/pkgconf.rb +15 -0
  138. data/lib/rubycc/pkgconf/resolver.rb +70 -0
  139. data/lib/rubycc/pkgconf/search_path.rb +38 -0
  140. data/lib/rubycc/pkgconf/system_path_filter.rb +131 -0
  141. data/lib/rubycc/preprocess/constant_expression.rb +219 -0
  142. data/lib/rubycc/preprocess/glibc_version.rb +124 -0
  143. data/lib/rubycc/preprocess/pp_token.rb +62 -0
  144. data/lib/rubycc/preprocess/preprocessor.rb +2020 -0
  145. data/lib/rubycc/preprocess/scanner.rb +290 -0
  146. data/lib/rubycc/preprocess/token_converter.rb +157 -0
  147. data/lib/rubycc/rmake/cli.rb +143 -0
  148. data/lib/rubycc/rmake/errors.rb +71 -0
  149. data/lib/rubycc/rmake/executor.rb +818 -0
  150. data/lib/rubycc/rmake/expander.rb +251 -0
  151. data/lib/rubycc/rmake/makefile.rb +352 -0
  152. data/lib/rubycc/rmake/model.rb +137 -0
  153. data/lib/rubycc/rmake/parser.rb +226 -0
  154. data/lib/rubycc/rmake/rmake.rb +15 -0
  155. data/lib/rubycc/type.rb +1236 -0
  156. data/lib/rubycc/version.rb +5 -0
  157. data/lib/rubycc.rb +36 -0
  158. data/lib/rubygems_plugin.rb +102 -0
  159. metadata +219 -0
@@ -0,0 +1,4082 @@
1
+ {
2
+ "schema_version": 1,
3
+ "tool": "r10_corpus_scan",
4
+ "machine_gate": {
5
+ "candidate_count": 39,
6
+ "status_ok_count": 34,
7
+ "excluded_count": 5,
8
+ "skipped_count": 0,
9
+ "verified_record_count": 31,
10
+ "manual_classification_pending_count": 34,
11
+ "scanner_findings_count": 128
12
+ },
13
+ "limitations": [
14
+ "The corpus census is a machine gate, not a gem install or upstream-suite result.",
15
+ "The variadic scanner is lexical and heuristic; no finding or empty result proves presence or absence.",
16
+ "Macro expansion, generated-source selection, preprocessor conditions, and platform gates remain for manual review.",
17
+ "This artifact records gem .gem SHA-256 provenance; upstream source-tarball SHA-256 is not collected here.",
18
+ "Existing data/verified_gems.json records are referenced but are not re-executed by this scan."
19
+ ],
20
+ "targets": [
21
+ {
22
+ "name": "json",
23
+ "version": "2.21.1",
24
+ "r10_profile": "default-source",
25
+ "r10_extconf_args": [],
26
+ "machine_gate": {
27
+ "status": "ok",
28
+ "ext_c_files": 3,
29
+ "ext_h_files": 5
30
+ },
31
+ "provenance": {
32
+ "gem_url": "https://rubygems.org/downloads/json-2.21.1.gem",
33
+ "gem_sha256": "13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583",
34
+ "source_tarball_sha256": null,
35
+ "cache_relative_path": "json-2.21.1.gem",
36
+ "unpacked_relative_path": "unpacked/json-2.21.1"
37
+ },
38
+ "generated_source": {
39
+ "status": "not-reviewed",
40
+ "commands": null,
41
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
42
+ },
43
+ "scanner": {
44
+ "files_scanned": 8,
45
+ "summary": {
46
+ "total_findings": 0,
47
+ "by_kind": {}
48
+ },
49
+ "findings": [],
50
+ "errors": [],
51
+ "not_proof": true,
52
+ "not_acceptance_gate": true
53
+ },
54
+ "classification": {
55
+ "manual": "pending",
56
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
57
+ "reviewer": null,
58
+ "reviewed_at": null,
59
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
60
+ },
61
+ "verification": {
62
+ "recorded_in_data_verified_gems": true,
63
+ "record_path": "data/verified_gems.json",
64
+ "control": "not-run-by-this-scan",
65
+ "rubycc": "not-run-by-this-scan",
66
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
67
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
68
+ }
69
+ },
70
+ {
71
+ "name": "msgpack",
72
+ "version": "1.8.3",
73
+ "r10_profile": "default-source",
74
+ "r10_extconf_args": [],
75
+ "machine_gate": {
76
+ "status": "ok",
77
+ "ext_c_files": 12,
78
+ "ext_h_files": 15
79
+ },
80
+ "provenance": {
81
+ "gem_url": "https://rubygems.org/downloads/msgpack-1.8.3.gem",
82
+ "gem_sha256": "8bda4a6428d3244e50d6bd55854d354edbada88a4e1f4f5731a39a0f86bee6a1",
83
+ "source_tarball_sha256": null,
84
+ "cache_relative_path": "msgpack-1.8.3.gem",
85
+ "unpacked_relative_path": "unpacked/msgpack-1.8.3"
86
+ },
87
+ "generated_source": {
88
+ "status": "not-reviewed",
89
+ "commands": null,
90
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
91
+ },
92
+ "scanner": {
93
+ "files_scanned": 27,
94
+ "summary": {
95
+ "total_findings": 0,
96
+ "by_kind": {}
97
+ },
98
+ "findings": [],
99
+ "errors": [],
100
+ "not_proof": true,
101
+ "not_acceptance_gate": true
102
+ },
103
+ "classification": {
104
+ "manual": "pending",
105
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
106
+ "reviewer": null,
107
+ "reviewed_at": null,
108
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
109
+ },
110
+ "verification": {
111
+ "recorded_in_data_verified_gems": true,
112
+ "record_path": "data/verified_gems.json",
113
+ "control": "not-run-by-this-scan",
114
+ "rubycc": "not-run-by-this-scan",
115
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
116
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
117
+ }
118
+ },
119
+ {
120
+ "name": "bigdecimal",
121
+ "version": "4.1.2",
122
+ "r10_profile": "default-source",
123
+ "r10_extconf_args": [],
124
+ "machine_gate": {
125
+ "status": "ok",
126
+ "ext_c_files": 3,
127
+ "ext_h_files": 7
128
+ },
129
+ "provenance": {
130
+ "gem_url": "https://rubygems.org/downloads/bigdecimal-4.1.2.gem",
131
+ "gem_sha256": "53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd",
132
+ "source_tarball_sha256": null,
133
+ "cache_relative_path": "bigdecimal-4.1.2.gem",
134
+ "unpacked_relative_path": "unpacked/bigdecimal-4.1.2"
135
+ },
136
+ "generated_source": {
137
+ "status": "not-reviewed",
138
+ "commands": null,
139
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
140
+ },
141
+ "scanner": {
142
+ "files_scanned": 10,
143
+ "summary": {
144
+ "total_findings": 0,
145
+ "by_kind": {}
146
+ },
147
+ "findings": [],
148
+ "errors": [],
149
+ "not_proof": true,
150
+ "not_acceptance_gate": true
151
+ },
152
+ "classification": {
153
+ "manual": "pending",
154
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
155
+ "reviewer": null,
156
+ "reviewed_at": null,
157
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
158
+ },
159
+ "verification": {
160
+ "recorded_in_data_verified_gems": true,
161
+ "record_path": "data/verified_gems.json",
162
+ "control": "not-run-by-this-scan",
163
+ "rubycc": "not-run-by-this-scan",
164
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
165
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
166
+ }
167
+ },
168
+ {
169
+ "name": "date",
170
+ "version": "3.5.1",
171
+ "r10_profile": "default-source",
172
+ "r10_extconf_args": [],
173
+ "machine_gate": {
174
+ "status": "ok",
175
+ "ext_c_files": 4,
176
+ "ext_h_files": 2
177
+ },
178
+ "provenance": {
179
+ "gem_url": "https://rubygems.org/downloads/date-3.5.1.gem",
180
+ "gem_sha256": "750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0",
181
+ "source_tarball_sha256": null,
182
+ "cache_relative_path": "date-3.5.1.gem",
183
+ "unpacked_relative_path": "unpacked/date-3.5.1"
184
+ },
185
+ "generated_source": {
186
+ "status": "not-reviewed",
187
+ "commands": null,
188
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
189
+ },
190
+ "scanner": {
191
+ "files_scanned": 6,
192
+ "summary": {
193
+ "total_findings": 2,
194
+ "by_kind": {
195
+ "struct_argument_to_variadic_candidate": 2
196
+ }
197
+ },
198
+ "findings": [
199
+ {
200
+ "root_index": 0,
201
+ "path": "date/date_core.c",
202
+ "line": 7397,
203
+ "column": 43,
204
+ "kind": "struct_argument_to_variadic_candidate",
205
+ "confidence": "medium",
206
+ "evidence": "snprintf(fmt, size, , c, FIX2INT(y) - s)",
207
+ "details": {
208
+ "callee": "snprintf",
209
+ "argument_index": 3,
210
+ "fixed_parameter_count": 3,
211
+ "argument_shape": "known_struct_or_union_variable",
212
+ "api_source": "known_variadic_api"
213
+ }
214
+ },
215
+ {
216
+ "root_index": 0,
217
+ "path": "date/date_core.c",
218
+ "line": 7397,
219
+ "column": 46,
220
+ "kind": "struct_argument_to_variadic_candidate",
221
+ "confidence": "medium",
222
+ "evidence": "snprintf(fmt, size, , c, FIX2INT(y) - s)",
223
+ "details": {
224
+ "callee": "snprintf",
225
+ "argument_index": 4,
226
+ "fixed_parameter_count": 3,
227
+ "argument_shape": "known_struct_or_union_variable",
228
+ "api_source": "known_variadic_api"
229
+ }
230
+ }
231
+ ],
232
+ "errors": [],
233
+ "not_proof": true,
234
+ "not_acceptance_gate": true
235
+ },
236
+ "classification": {
237
+ "manual": "pending",
238
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
239
+ "reviewer": null,
240
+ "reviewed_at": null,
241
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
242
+ },
243
+ "verification": {
244
+ "recorded_in_data_verified_gems": true,
245
+ "record_path": "data/verified_gems.json",
246
+ "control": "not-run-by-this-scan",
247
+ "rubycc": "not-run-by-this-scan",
248
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
249
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
250
+ }
251
+ },
252
+ {
253
+ "name": "racc",
254
+ "version": "1.8.1",
255
+ "r10_profile": "default-source",
256
+ "r10_extconf_args": [],
257
+ "machine_gate": {
258
+ "status": "ok",
259
+ "ext_c_files": 1,
260
+ "ext_h_files": 0
261
+ },
262
+ "provenance": {
263
+ "gem_url": "https://rubygems.org/downloads/racc-1.8.1.gem",
264
+ "gem_sha256": "4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f",
265
+ "source_tarball_sha256": null,
266
+ "cache_relative_path": "racc-1.8.1.gem",
267
+ "unpacked_relative_path": "unpacked/racc-1.8.1"
268
+ },
269
+ "generated_source": {
270
+ "status": "not-reviewed",
271
+ "commands": null,
272
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
273
+ },
274
+ "scanner": {
275
+ "files_scanned": 1,
276
+ "summary": {
277
+ "total_findings": 0,
278
+ "by_kind": {}
279
+ },
280
+ "findings": [],
281
+ "errors": [],
282
+ "not_proof": true,
283
+ "not_acceptance_gate": true
284
+ },
285
+ "classification": {
286
+ "manual": "pending",
287
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
288
+ "reviewer": null,
289
+ "reviewed_at": null,
290
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
291
+ },
292
+ "verification": {
293
+ "recorded_in_data_verified_gems": true,
294
+ "record_path": "data/verified_gems.json",
295
+ "control": "not-run-by-this-scan",
296
+ "rubycc": "not-run-by-this-scan",
297
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
298
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
299
+ }
300
+ },
301
+ {
302
+ "name": "redcarpet",
303
+ "version": "3.6.1",
304
+ "r10_profile": "default-source",
305
+ "r10_extconf_args": [],
306
+ "machine_gate": {
307
+ "status": "ok",
308
+ "ext_c_files": 10,
309
+ "ext_h_files": 8
310
+ },
311
+ "provenance": {
312
+ "gem_url": "https://rubygems.org/downloads/redcarpet-3.6.1.gem",
313
+ "gem_sha256": "d444910e6aa55480c6bcdc0cdb057626e8a32c054c29e793fa642ba2f155f445",
314
+ "source_tarball_sha256": null,
315
+ "cache_relative_path": "redcarpet-3.6.1.gem",
316
+ "unpacked_relative_path": "unpacked/redcarpet-3.6.1"
317
+ },
318
+ "generated_source": {
319
+ "status": "not-reviewed",
320
+ "commands": null,
321
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
322
+ },
323
+ "scanner": {
324
+ "files_scanned": 18,
325
+ "summary": {
326
+ "total_findings": 0,
327
+ "by_kind": {}
328
+ },
329
+ "findings": [],
330
+ "errors": [],
331
+ "not_proof": true,
332
+ "not_acceptance_gate": true
333
+ },
334
+ "classification": {
335
+ "manual": "pending",
336
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
337
+ "reviewer": null,
338
+ "reviewed_at": null,
339
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
340
+ },
341
+ "verification": {
342
+ "recorded_in_data_verified_gems": true,
343
+ "record_path": "data/verified_gems.json",
344
+ "control": "not-run-by-this-scan",
345
+ "rubycc": "not-run-by-this-scan",
346
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
347
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
348
+ }
349
+ },
350
+ {
351
+ "name": "digest",
352
+ "version": "3.2.1",
353
+ "r10_profile": "default-source",
354
+ "r10_extconf_args": [],
355
+ "machine_gate": {
356
+ "status": "ok",
357
+ "ext_c_files": 10,
358
+ "ext_h_files": 9
359
+ },
360
+ "provenance": {
361
+ "gem_url": "https://rubygems.org/downloads/digest-3.2.1.gem",
362
+ "gem_sha256": "ab3312b4e272d7d5dc41c564c86a25861a1f34ac5153374199a0b74861395947",
363
+ "source_tarball_sha256": null,
364
+ "cache_relative_path": "digest-3.2.1.gem",
365
+ "unpacked_relative_path": "unpacked/digest-3.2.1"
366
+ },
367
+ "generated_source": {
368
+ "status": "not-reviewed",
369
+ "commands": null,
370
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
371
+ },
372
+ "scanner": {
373
+ "files_scanned": 19,
374
+ "summary": {
375
+ "total_findings": 0,
376
+ "by_kind": {}
377
+ },
378
+ "findings": [],
379
+ "errors": [],
380
+ "not_proof": true,
381
+ "not_acceptance_gate": true
382
+ },
383
+ "classification": {
384
+ "manual": "pending",
385
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
386
+ "reviewer": null,
387
+ "reviewed_at": null,
388
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
389
+ },
390
+ "verification": {
391
+ "recorded_in_data_verified_gems": true,
392
+ "record_path": "data/verified_gems.json",
393
+ "control": "not-run-by-this-scan",
394
+ "rubycc": "not-run-by-this-scan",
395
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
396
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
397
+ }
398
+ },
399
+ {
400
+ "name": "erb",
401
+ "version": "6.0.1.1",
402
+ "r10_profile": "default-source",
403
+ "r10_extconf_args": [],
404
+ "machine_gate": {
405
+ "status": "ok",
406
+ "ext_c_files": 1,
407
+ "ext_h_files": 0
408
+ },
409
+ "provenance": {
410
+ "gem_url": "https://rubygems.org/downloads/erb-6.0.1.1.gem",
411
+ "gem_sha256": "ce5357460652a9a94667c5769eaffc551eea2b14a8531ac7c7b1d77b860758b9",
412
+ "source_tarball_sha256": null,
413
+ "cache_relative_path": "erb-6.0.1.1.gem",
414
+ "unpacked_relative_path": "unpacked/erb-6.0.1.1"
415
+ },
416
+ "generated_source": {
417
+ "status": "not-reviewed",
418
+ "commands": null,
419
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
420
+ },
421
+ "scanner": {
422
+ "files_scanned": 1,
423
+ "summary": {
424
+ "total_findings": 0,
425
+ "by_kind": {}
426
+ },
427
+ "findings": [],
428
+ "errors": [],
429
+ "not_proof": true,
430
+ "not_acceptance_gate": true
431
+ },
432
+ "classification": {
433
+ "manual": "pending",
434
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
435
+ "reviewer": null,
436
+ "reviewed_at": null,
437
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
438
+ },
439
+ "verification": {
440
+ "recorded_in_data_verified_gems": true,
441
+ "record_path": "data/verified_gems.json",
442
+ "control": "not-run-by-this-scan",
443
+ "rubycc": "not-run-by-this-scan",
444
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
445
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
446
+ }
447
+ },
448
+ {
449
+ "name": "etc",
450
+ "version": "1.4.6",
451
+ "r10_profile": "default-source",
452
+ "r10_extconf_args": [],
453
+ "machine_gate": {
454
+ "status": "ok",
455
+ "ext_c_files": 1,
456
+ "ext_h_files": 1
457
+ },
458
+ "provenance": {
459
+ "gem_url": "https://rubygems.org/downloads/etc-1.4.6.gem",
460
+ "gem_sha256": "0f7e9e7842ea5e3c3bd9bc81746ebb8c65ea29e4c42a93520a0d638129c7de01",
461
+ "source_tarball_sha256": null,
462
+ "cache_relative_path": "etc-1.4.6.gem",
463
+ "unpacked_relative_path": "unpacked/etc-1.4.6"
464
+ },
465
+ "generated_source": {
466
+ "status": "not-reviewed",
467
+ "commands": null,
468
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
469
+ },
470
+ "scanner": {
471
+ "files_scanned": 2,
472
+ "summary": {
473
+ "total_findings": 0,
474
+ "by_kind": {}
475
+ },
476
+ "findings": [],
477
+ "errors": [],
478
+ "not_proof": true,
479
+ "not_acceptance_gate": true
480
+ },
481
+ "classification": {
482
+ "manual": "pending",
483
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
484
+ "reviewer": null,
485
+ "reviewed_at": null,
486
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
487
+ },
488
+ "verification": {
489
+ "recorded_in_data_verified_gems": true,
490
+ "record_path": "data/verified_gems.json",
491
+ "control": "not-run-by-this-scan",
492
+ "rubycc": "not-run-by-this-scan",
493
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
494
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
495
+ }
496
+ },
497
+ {
498
+ "name": "io-console",
499
+ "version": "0.8.2",
500
+ "r10_profile": "default-source",
501
+ "r10_extconf_args": [],
502
+ "machine_gate": {
503
+ "status": "ok",
504
+ "ext_c_files": 1,
505
+ "ext_h_files": 0
506
+ },
507
+ "provenance": {
508
+ "gem_url": "https://rubygems.org/downloads/io-console-0.8.2.gem",
509
+ "gem_sha256": "d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc",
510
+ "source_tarball_sha256": null,
511
+ "cache_relative_path": "io-console-0.8.2.gem",
512
+ "unpacked_relative_path": "unpacked/io-console-0.8.2"
513
+ },
514
+ "generated_source": {
515
+ "status": "not-reviewed",
516
+ "commands": null,
517
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
518
+ },
519
+ "scanner": {
520
+ "files_scanned": 2,
521
+ "summary": {
522
+ "total_findings": 0,
523
+ "by_kind": {}
524
+ },
525
+ "findings": [],
526
+ "errors": [],
527
+ "not_proof": true,
528
+ "not_acceptance_gate": true
529
+ },
530
+ "classification": {
531
+ "manual": "pending",
532
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
533
+ "reviewer": null,
534
+ "reviewed_at": null,
535
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
536
+ },
537
+ "verification": {
538
+ "recorded_in_data_verified_gems": true,
539
+ "record_path": "data/verified_gems.json",
540
+ "control": "not-run-by-this-scan",
541
+ "rubycc": "not-run-by-this-scan",
542
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
543
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
544
+ }
545
+ },
546
+ {
547
+ "name": "io-nonblock",
548
+ "version": "0.3.2",
549
+ "r10_profile": "default-source",
550
+ "r10_extconf_args": [],
551
+ "machine_gate": {
552
+ "status": "ok",
553
+ "ext_c_files": 1,
554
+ "ext_h_files": 0
555
+ },
556
+ "provenance": {
557
+ "gem_url": "https://rubygems.org/downloads/io-nonblock-0.3.2.gem",
558
+ "gem_sha256": "2014636edae4e32e893a3b9e6bac9d1c5b8d3af41b8cd5bcb2279a78fbef937d",
559
+ "source_tarball_sha256": null,
560
+ "cache_relative_path": "io-nonblock-0.3.2.gem",
561
+ "unpacked_relative_path": "unpacked/io-nonblock-0.3.2"
562
+ },
563
+ "generated_source": {
564
+ "status": "not-reviewed",
565
+ "commands": null,
566
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
567
+ },
568
+ "scanner": {
569
+ "files_scanned": 1,
570
+ "summary": {
571
+ "total_findings": 0,
572
+ "by_kind": {}
573
+ },
574
+ "findings": [],
575
+ "errors": [],
576
+ "not_proof": true,
577
+ "not_acceptance_gate": true
578
+ },
579
+ "classification": {
580
+ "manual": "pending",
581
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
582
+ "reviewer": null,
583
+ "reviewed_at": null,
584
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
585
+ },
586
+ "verification": {
587
+ "recorded_in_data_verified_gems": true,
588
+ "record_path": "data/verified_gems.json",
589
+ "control": "not-run-by-this-scan",
590
+ "rubycc": "not-run-by-this-scan",
591
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
592
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
593
+ }
594
+ },
595
+ {
596
+ "name": "io-wait",
597
+ "version": "0.4.0",
598
+ "r10_profile": "default-source",
599
+ "r10_extconf_args": [],
600
+ "machine_gate": {
601
+ "status": "ok",
602
+ "ext_c_files": 1,
603
+ "ext_h_files": 0
604
+ },
605
+ "provenance": {
606
+ "gem_url": "https://rubygems.org/downloads/io-wait-0.4.0.gem",
607
+ "gem_sha256": "872c703066ae5371bf19f441b4d4991cf4f259ada548c717cadce26b256e9309",
608
+ "source_tarball_sha256": null,
609
+ "cache_relative_path": "io-wait-0.4.0.gem",
610
+ "unpacked_relative_path": "unpacked/io-wait-0.4.0"
611
+ },
612
+ "generated_source": {
613
+ "status": "not-reviewed",
614
+ "commands": null,
615
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
616
+ },
617
+ "scanner": {
618
+ "files_scanned": 1,
619
+ "summary": {
620
+ "total_findings": 0,
621
+ "by_kind": {}
622
+ },
623
+ "findings": [],
624
+ "errors": [],
625
+ "not_proof": true,
626
+ "not_acceptance_gate": true
627
+ },
628
+ "classification": {
629
+ "manual": "pending",
630
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
631
+ "reviewer": null,
632
+ "reviewed_at": null,
633
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
634
+ },
635
+ "verification": {
636
+ "recorded_in_data_verified_gems": true,
637
+ "record_path": "data/verified_gems.json",
638
+ "control": "not-run-by-this-scan",
639
+ "rubycc": "not-run-by-this-scan",
640
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
641
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
642
+ }
643
+ },
644
+ {
645
+ "name": "openssl",
646
+ "version": "4.0.2",
647
+ "r10_profile": "default-source",
648
+ "r10_extconf_args": [],
649
+ "machine_gate": {
650
+ "status": "ok",
651
+ "ext_c_files": 33,
652
+ "ext_h_files": 21
653
+ },
654
+ "provenance": {
655
+ "gem_url": "https://rubygems.org/downloads/openssl-4.0.2.gem",
656
+ "gem_sha256": "1037ad2868ae58df9ad917891c0c0f9815a1172f6846d4bcdd508e4c2ee747c2",
657
+ "source_tarball_sha256": null,
658
+ "cache_relative_path": "openssl-4.0.2.gem",
659
+ "unpacked_relative_path": "unpacked/openssl-4.0.2"
660
+ },
661
+ "generated_source": {
662
+ "status": "not-reviewed",
663
+ "commands": null,
664
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
665
+ },
666
+ "scanner": {
667
+ "files_scanned": 54,
668
+ "summary": {
669
+ "total_findings": 0,
670
+ "by_kind": {}
671
+ },
672
+ "findings": [],
673
+ "errors": [],
674
+ "not_proof": true,
675
+ "not_acceptance_gate": true
676
+ },
677
+ "classification": {
678
+ "manual": "pending",
679
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
680
+ "reviewer": null,
681
+ "reviewed_at": null,
682
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
683
+ },
684
+ "verification": {
685
+ "recorded_in_data_verified_gems": false,
686
+ "record_path": null,
687
+ "control": "not-run-by-this-scan",
688
+ "rubycc": "not-run-by-this-scan",
689
+ "extension_load": "not-run-by-this-scan",
690
+ "upstream_suite": "not-run-by-this-scan"
691
+ }
692
+ },
693
+ {
694
+ "name": "prism",
695
+ "version": "1.8.1",
696
+ "r10_profile": "default-source",
697
+ "r10_extconf_args": [],
698
+ "machine_gate": {
699
+ "status": "ok",
700
+ "ext_c_files": 3,
701
+ "ext_h_files": 1
702
+ },
703
+ "provenance": {
704
+ "gem_url": "https://rubygems.org/downloads/prism-1.8.1.gem",
705
+ "gem_sha256": "b260c1844ee0c7ead9c938f7fd63b95888c87cc054dfb64043204eccff8116ac",
706
+ "source_tarball_sha256": null,
707
+ "cache_relative_path": "prism-1.8.1.gem",
708
+ "unpacked_relative_path": "unpacked/prism-1.8.1"
709
+ },
710
+ "generated_source": {
711
+ "status": "not-reviewed",
712
+ "commands": null,
713
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
714
+ },
715
+ "scanner": {
716
+ "files_scanned": 4,
717
+ "summary": {
718
+ "total_findings": 0,
719
+ "by_kind": {}
720
+ },
721
+ "findings": [],
722
+ "errors": [],
723
+ "not_proof": true,
724
+ "not_acceptance_gate": true
725
+ },
726
+ "classification": {
727
+ "manual": "pending",
728
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
729
+ "reviewer": null,
730
+ "reviewed_at": null,
731
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
732
+ },
733
+ "verification": {
734
+ "recorded_in_data_verified_gems": true,
735
+ "record_path": "data/verified_gems.json",
736
+ "control": "not-run-by-this-scan",
737
+ "rubycc": "not-run-by-this-scan",
738
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
739
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
740
+ }
741
+ },
742
+ {
743
+ "name": "psych",
744
+ "version": "5.3.1",
745
+ "r10_profile": "default-source",
746
+ "r10_extconf_args": [],
747
+ "machine_gate": {
748
+ "status": "ok",
749
+ "ext_c_files": 5,
750
+ "ext_h_files": 5
751
+ },
752
+ "provenance": {
753
+ "gem_url": "https://rubygems.org/downloads/psych-5.3.1.gem",
754
+ "gem_sha256": "eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974",
755
+ "source_tarball_sha256": null,
756
+ "cache_relative_path": "psych-5.3.1.gem",
757
+ "unpacked_relative_path": "unpacked/psych-5.3.1"
758
+ },
759
+ "generated_source": {
760
+ "status": "not-reviewed",
761
+ "commands": null,
762
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
763
+ },
764
+ "scanner": {
765
+ "files_scanned": 10,
766
+ "summary": {
767
+ "total_findings": 0,
768
+ "by_kind": {}
769
+ },
770
+ "findings": [],
771
+ "errors": [],
772
+ "not_proof": true,
773
+ "not_acceptance_gate": true
774
+ },
775
+ "classification": {
776
+ "manual": "pending",
777
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
778
+ "reviewer": null,
779
+ "reviewed_at": null,
780
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
781
+ },
782
+ "verification": {
783
+ "recorded_in_data_verified_gems": true,
784
+ "record_path": "data/verified_gems.json",
785
+ "control": "not-run-by-this-scan",
786
+ "rubycc": "not-run-by-this-scan",
787
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
788
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
789
+ }
790
+ },
791
+ {
792
+ "name": "stringio",
793
+ "version": "3.2.0",
794
+ "r10_profile": "default-source",
795
+ "r10_extconf_args": [],
796
+ "machine_gate": {
797
+ "status": "ok",
798
+ "ext_c_files": 1,
799
+ "ext_h_files": 0
800
+ },
801
+ "provenance": {
802
+ "gem_url": "https://rubygems.org/downloads/stringio-3.2.0.gem",
803
+ "gem_sha256": "c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1",
804
+ "source_tarball_sha256": null,
805
+ "cache_relative_path": "stringio-3.2.0.gem",
806
+ "unpacked_relative_path": "unpacked/stringio-3.2.0"
807
+ },
808
+ "generated_source": {
809
+ "status": "not-reviewed",
810
+ "commands": null,
811
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
812
+ },
813
+ "scanner": {
814
+ "files_scanned": 1,
815
+ "summary": {
816
+ "total_findings": 0,
817
+ "by_kind": {}
818
+ },
819
+ "findings": [],
820
+ "errors": [],
821
+ "not_proof": true,
822
+ "not_acceptance_gate": true
823
+ },
824
+ "classification": {
825
+ "manual": "pending",
826
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
827
+ "reviewer": null,
828
+ "reviewed_at": null,
829
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
830
+ },
831
+ "verification": {
832
+ "recorded_in_data_verified_gems": true,
833
+ "record_path": "data/verified_gems.json",
834
+ "control": "not-run-by-this-scan",
835
+ "rubycc": "not-run-by-this-scan",
836
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
837
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
838
+ }
839
+ },
840
+ {
841
+ "name": "strscan",
842
+ "version": "3.1.6",
843
+ "r10_profile": "default-source",
844
+ "r10_extconf_args": [],
845
+ "machine_gate": {
846
+ "status": "ok",
847
+ "ext_c_files": 1,
848
+ "ext_h_files": 0
849
+ },
850
+ "provenance": {
851
+ "gem_url": "https://rubygems.org/downloads/strscan-3.1.6.gem",
852
+ "gem_sha256": "ebd56df0b0468b00a1f2004b4078c34df58c3506b2bba939e7531892aece81f3",
853
+ "source_tarball_sha256": null,
854
+ "cache_relative_path": "strscan-3.1.6.gem",
855
+ "unpacked_relative_path": "unpacked/strscan-3.1.6"
856
+ },
857
+ "generated_source": {
858
+ "status": "not-reviewed",
859
+ "commands": null,
860
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
861
+ },
862
+ "scanner": {
863
+ "files_scanned": 1,
864
+ "summary": {
865
+ "total_findings": 0,
866
+ "by_kind": {}
867
+ },
868
+ "findings": [],
869
+ "errors": [],
870
+ "not_proof": true,
871
+ "not_acceptance_gate": true
872
+ },
873
+ "classification": {
874
+ "manual": "pending",
875
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
876
+ "reviewer": null,
877
+ "reviewed_at": null,
878
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
879
+ },
880
+ "verification": {
881
+ "recorded_in_data_verified_gems": true,
882
+ "record_path": "data/verified_gems.json",
883
+ "control": "not-run-by-this-scan",
884
+ "rubycc": "not-run-by-this-scan",
885
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
886
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
887
+ }
888
+ },
889
+ {
890
+ "name": "zlib",
891
+ "version": "3.2.3",
892
+ "r10_profile": "default-source",
893
+ "r10_extconf_args": [],
894
+ "machine_gate": {
895
+ "status": "ok",
896
+ "ext_c_files": 1,
897
+ "ext_h_files": 0
898
+ },
899
+ "provenance": {
900
+ "gem_url": "https://rubygems.org/downloads/zlib-3.2.3.gem",
901
+ "gem_sha256": "5bd316698b32f31a64ab910a8b6c282442ca1626a81bbd6a1674e8522e319c20",
902
+ "source_tarball_sha256": null,
903
+ "cache_relative_path": "zlib-3.2.3.gem",
904
+ "unpacked_relative_path": "unpacked/zlib-3.2.3"
905
+ },
906
+ "generated_source": {
907
+ "status": "not-reviewed",
908
+ "commands": null,
909
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
910
+ },
911
+ "scanner": {
912
+ "files_scanned": 1,
913
+ "summary": {
914
+ "total_findings": 0,
915
+ "by_kind": {}
916
+ },
917
+ "findings": [],
918
+ "errors": [],
919
+ "not_proof": true,
920
+ "not_acceptance_gate": true
921
+ },
922
+ "classification": {
923
+ "manual": "pending",
924
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
925
+ "reviewer": null,
926
+ "reviewed_at": null,
927
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
928
+ },
929
+ "verification": {
930
+ "recorded_in_data_verified_gems": true,
931
+ "record_path": "data/verified_gems.json",
932
+ "control": "not-run-by-this-scan",
933
+ "rubycc": "not-run-by-this-scan",
934
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
935
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
936
+ }
937
+ },
938
+ {
939
+ "name": "fiddle",
940
+ "version": "1.1.8",
941
+ "r10_profile": "default-source",
942
+ "r10_extconf_args": [],
943
+ "machine_gate": {
944
+ "status": "ok",
945
+ "ext_c_files": 8,
946
+ "ext_h_files": 4
947
+ },
948
+ "provenance": {
949
+ "gem_url": "https://rubygems.org/downloads/fiddle-1.1.8.gem",
950
+ "gem_sha256": "7fa8ee3627271497f3add5503acdbc3f40b32f610fc1cf49634f083ef3f32eee",
951
+ "source_tarball_sha256": null,
952
+ "cache_relative_path": "fiddle-1.1.8.gem",
953
+ "unpacked_relative_path": "unpacked/fiddle-1.1.8"
954
+ },
955
+ "generated_source": {
956
+ "status": "not-reviewed",
957
+ "commands": null,
958
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
959
+ },
960
+ "scanner": {
961
+ "files_scanned": 12,
962
+ "summary": {
963
+ "total_findings": 0,
964
+ "by_kind": {}
965
+ },
966
+ "findings": [],
967
+ "errors": [],
968
+ "not_proof": true,
969
+ "not_acceptance_gate": true
970
+ },
971
+ "classification": {
972
+ "manual": "pending",
973
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
974
+ "reviewer": null,
975
+ "reviewed_at": null,
976
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
977
+ },
978
+ "verification": {
979
+ "recorded_in_data_verified_gems": true,
980
+ "record_path": "data/verified_gems.json",
981
+ "control": "not-run-by-this-scan",
982
+ "rubycc": "not-run-by-this-scan",
983
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
984
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
985
+ }
986
+ },
987
+ {
988
+ "name": "rbs",
989
+ "version": "3.10.0",
990
+ "r10_profile": "default-source",
991
+ "r10_extconf_args": [],
992
+ "machine_gate": {
993
+ "status": "ok",
994
+ "ext_c_files": 5,
995
+ "ext_h_files": 6
996
+ },
997
+ "provenance": {
998
+ "gem_url": "https://rubygems.org/downloads/rbs-3.10.0.gem",
999
+ "gem_sha256": "e75b5f1313c71c9ee0fcea68bf97d3e5fe8ec7a641d4b5cd18bbc28c94ddf298",
1000
+ "source_tarball_sha256": null,
1001
+ "cache_relative_path": "rbs-3.10.0.gem",
1002
+ "unpacked_relative_path": "unpacked/rbs-3.10.0"
1003
+ },
1004
+ "generated_source": {
1005
+ "status": "not-reviewed",
1006
+ "commands": null,
1007
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
1008
+ },
1009
+ "scanner": {
1010
+ "files_scanned": 11,
1011
+ "summary": {
1012
+ "total_findings": 0,
1013
+ "by_kind": {}
1014
+ },
1015
+ "findings": [],
1016
+ "errors": [],
1017
+ "not_proof": true,
1018
+ "not_acceptance_gate": true
1019
+ },
1020
+ "classification": {
1021
+ "manual": "pending",
1022
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
1023
+ "reviewer": null,
1024
+ "reviewed_at": null,
1025
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
1026
+ },
1027
+ "verification": {
1028
+ "recorded_in_data_verified_gems": false,
1029
+ "record_path": null,
1030
+ "control": "not-run-by-this-scan",
1031
+ "rubycc": "not-run-by-this-scan",
1032
+ "extension_load": "not-run-by-this-scan",
1033
+ "upstream_suite": "not-run-by-this-scan"
1034
+ }
1035
+ },
1036
+ {
1037
+ "name": "syslog",
1038
+ "version": "0.3.0",
1039
+ "r10_profile": "default-source",
1040
+ "r10_extconf_args": [],
1041
+ "machine_gate": {
1042
+ "status": "ok",
1043
+ "ext_c_files": 1,
1044
+ "ext_h_files": 0
1045
+ },
1046
+ "provenance": {
1047
+ "gem_url": "https://rubygems.org/downloads/syslog-0.3.0.gem",
1048
+ "gem_sha256": "4dfe6e7bd5adb6383706bb4ad5a05da1f3a09917a507e8f913c73287085c7408",
1049
+ "source_tarball_sha256": null,
1050
+ "cache_relative_path": "syslog-0.3.0.gem",
1051
+ "unpacked_relative_path": "unpacked/syslog-0.3.0"
1052
+ },
1053
+ "generated_source": {
1054
+ "status": "not-reviewed",
1055
+ "commands": null,
1056
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
1057
+ },
1058
+ "scanner": {
1059
+ "files_scanned": 1,
1060
+ "summary": {
1061
+ "total_findings": 0,
1062
+ "by_kind": {}
1063
+ },
1064
+ "findings": [],
1065
+ "errors": [],
1066
+ "not_proof": true,
1067
+ "not_acceptance_gate": true
1068
+ },
1069
+ "classification": {
1070
+ "manual": "pending",
1071
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
1072
+ "reviewer": null,
1073
+ "reviewed_at": null,
1074
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
1075
+ },
1076
+ "verification": {
1077
+ "recorded_in_data_verified_gems": true,
1078
+ "record_path": "data/verified_gems.json",
1079
+ "control": "not-run-by-this-scan",
1080
+ "rubycc": "not-run-by-this-scan",
1081
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
1082
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
1083
+ }
1084
+ },
1085
+ {
1086
+ "name": "websocket-driver",
1087
+ "version": "0.8.2",
1088
+ "r10_profile": "default-source",
1089
+ "r10_extconf_args": [],
1090
+ "machine_gate": {
1091
+ "status": "ok",
1092
+ "ext_c_files": 1,
1093
+ "ext_h_files": 0
1094
+ },
1095
+ "provenance": {
1096
+ "gem_url": "https://rubygems.org/downloads/websocket-driver-0.8.2.gem",
1097
+ "gem_sha256": "97c556b019bf3410b4961002ac501621e9322d3f8a7bc02161a09301cc4c4146",
1098
+ "source_tarball_sha256": null,
1099
+ "cache_relative_path": "websocket-driver-0.8.2.gem",
1100
+ "unpacked_relative_path": "unpacked/websocket-driver-0.8.2"
1101
+ },
1102
+ "generated_source": {
1103
+ "status": "not-reviewed",
1104
+ "commands": null,
1105
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
1106
+ },
1107
+ "scanner": {
1108
+ "files_scanned": 1,
1109
+ "summary": {
1110
+ "total_findings": 0,
1111
+ "by_kind": {}
1112
+ },
1113
+ "findings": [],
1114
+ "errors": [],
1115
+ "not_proof": true,
1116
+ "not_acceptance_gate": true
1117
+ },
1118
+ "classification": {
1119
+ "manual": "pending",
1120
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
1121
+ "reviewer": null,
1122
+ "reviewed_at": null,
1123
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
1124
+ },
1125
+ "verification": {
1126
+ "recorded_in_data_verified_gems": true,
1127
+ "record_path": "data/verified_gems.json",
1128
+ "control": "not-run-by-this-scan",
1129
+ "rubycc": "not-run-by-this-scan",
1130
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
1131
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
1132
+ }
1133
+ },
1134
+ {
1135
+ "name": "puma",
1136
+ "version": "8.0.2",
1137
+ "r10_profile": "default-source",
1138
+ "r10_extconf_args": [],
1139
+ "machine_gate": {
1140
+ "status": "ok",
1141
+ "ext_c_files": 3,
1142
+ "ext_h_files": 1
1143
+ },
1144
+ "provenance": {
1145
+ "gem_url": "https://rubygems.org/downloads/puma-8.0.2.gem",
1146
+ "gem_sha256": "c8ed871dfbbe66448ea9ffd46692342d9804d4071522b52b5331b7b6e7b686fb",
1147
+ "source_tarball_sha256": null,
1148
+ "cache_relative_path": "puma-8.0.2.gem",
1149
+ "unpacked_relative_path": "unpacked/puma-8.0.2"
1150
+ },
1151
+ "generated_source": {
1152
+ "status": "not-reviewed",
1153
+ "commands": null,
1154
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
1155
+ },
1156
+ "scanner": {
1157
+ "files_scanned": 4,
1158
+ "summary": {
1159
+ "total_findings": 0,
1160
+ "by_kind": {}
1161
+ },
1162
+ "findings": [],
1163
+ "errors": [],
1164
+ "not_proof": true,
1165
+ "not_acceptance_gate": true
1166
+ },
1167
+ "classification": {
1168
+ "manual": "pending",
1169
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
1170
+ "reviewer": null,
1171
+ "reviewed_at": null,
1172
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
1173
+ },
1174
+ "verification": {
1175
+ "recorded_in_data_verified_gems": true,
1176
+ "record_path": "data/verified_gems.json",
1177
+ "control": "not-run-by-this-scan",
1178
+ "rubycc": "not-run-by-this-scan",
1179
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
1180
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
1181
+ }
1182
+ },
1183
+ {
1184
+ "name": "google-protobuf",
1185
+ "version": "4.35.1",
1186
+ "r10_profile": "default-source",
1187
+ "r10_extconf_args": [],
1188
+ "machine_gate": {
1189
+ "status": "ok",
1190
+ "ext_c_files": 11,
1191
+ "ext_h_files": 10
1192
+ },
1193
+ "provenance": {
1194
+ "gem_url": "https://rubygems.org/downloads/google-protobuf-4.35.1.gem",
1195
+ "gem_sha256": "a3a6471331d918f58dfa4d014a8f6286f0af2cf4840216bde52fcf2ea3fe3726",
1196
+ "source_tarball_sha256": null,
1197
+ "cache_relative_path": "google-protobuf-4.35.1.gem",
1198
+ "unpacked_relative_path": "unpacked/google-protobuf-4.35.1"
1199
+ },
1200
+ "generated_source": {
1201
+ "status": "not-reviewed",
1202
+ "commands": null,
1203
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
1204
+ },
1205
+ "scanner": {
1206
+ "files_scanned": 23,
1207
+ "summary": {
1208
+ "total_findings": 41,
1209
+ "by_kind": {
1210
+ "struct_argument_to_variadic_candidate": 36,
1211
+ "va_list_wrapper": 5
1212
+ }
1213
+ },
1214
+ "findings": [
1215
+ {
1216
+ "root_index": 0,
1217
+ "path": "google/protobuf_c/ruby-upb.c",
1218
+ "line": 2268,
1219
+ "column": 6,
1220
+ "kind": "va_list_wrapper",
1221
+ "confidence": "medium",
1222
+ "evidence": "upb_Status_VSetErrorFormat(upb_Status* status, const char* fmt, va_list args)",
1223
+ "details": {
1224
+ "role": "function_parameter_or_call"
1225
+ }
1226
+ },
1227
+ {
1228
+ "root_index": 0,
1229
+ "path": "google/protobuf_c/ruby-upb.c",
1230
+ "line": 2276,
1231
+ "column": 6,
1232
+ "kind": "va_list_wrapper",
1233
+ "confidence": "medium",
1234
+ "evidence": "upb_Status_VAppendErrorFormat(upb_Status* status, const char* fmt, va_list args)",
1235
+ "details": {
1236
+ "role": "function_parameter_or_call"
1237
+ }
1238
+ },
1239
+ {
1240
+ "root_index": 0,
1241
+ "path": "google/protobuf_c/ruby-upb.c",
1242
+ "line": 3414,
1243
+ "column": 72,
1244
+ "kind": "struct_argument_to_variadic_candidate",
1245
+ "confidence": "high",
1246
+ "evidence": "upb_Status_SetErrorFormat(d->status, , d->line, (int)(d->ptr - d->line_begin), msg)",
1247
+ "details": {
1248
+ "callee": "upb_Status_SetErrorFormat",
1249
+ "argument_index": 2,
1250
+ "fixed_parameter_count": 2,
1251
+ "argument_shape": "known_struct_or_union_variable",
1252
+ "api_source": "scanned_declaration",
1253
+ "declaration": {
1254
+ "root_index": 0,
1255
+ "path": "google/protobuf_c/ruby-upb.c",
1256
+ "line": 2261,
1257
+ "column": 6,
1258
+ "name": "upb_Status_SetErrorFormat",
1259
+ "fixed_parameter_count": 2,
1260
+ "form": "function_or_declaration"
1261
+ }
1262
+ }
1263
+ },
1264
+ {
1265
+ "root_index": 0,
1266
+ "path": "google/protobuf_c/ruby-upb.c",
1267
+ "line": 3414,
1268
+ "column": 81,
1269
+ "kind": "struct_argument_to_variadic_candidate",
1270
+ "confidence": "high",
1271
+ "evidence": "upb_Status_SetErrorFormat(d->status, , d->line, (int)(d->ptr - d->line_begin), msg)",
1272
+ "details": {
1273
+ "callee": "upb_Status_SetErrorFormat",
1274
+ "argument_index": 3,
1275
+ "fixed_parameter_count": 2,
1276
+ "argument_shape": "known_struct_or_union_variable",
1277
+ "api_source": "scanned_declaration",
1278
+ "declaration": {
1279
+ "root_index": 0,
1280
+ "path": "google/protobuf_c/ruby-upb.c",
1281
+ "line": 2261,
1282
+ "column": 6,
1283
+ "name": "upb_Status_SetErrorFormat",
1284
+ "fixed_parameter_count": 2,
1285
+ "form": "function_or_declaration"
1286
+ }
1287
+ }
1288
+ },
1289
+ {
1290
+ "root_index": 0,
1291
+ "path": "google/protobuf_c/ruby-upb.c",
1292
+ "line": 3415,
1293
+ "column": 59,
1294
+ "kind": "struct_argument_to_variadic_candidate",
1295
+ "confidence": "high",
1296
+ "evidence": "upb_Status_SetErrorFormat(d->status, , d->line, (int)(d->ptr - d->line_begin), msg)",
1297
+ "details": {
1298
+ "callee": "upb_Status_SetErrorFormat",
1299
+ "argument_index": 4,
1300
+ "fixed_parameter_count": 2,
1301
+ "argument_shape": "known_struct_or_union_variable",
1302
+ "api_source": "scanned_declaration",
1303
+ "declaration": {
1304
+ "root_index": 0,
1305
+ "path": "google/protobuf_c/ruby-upb.c",
1306
+ "line": 2261,
1307
+ "column": 6,
1308
+ "name": "upb_Status_SetErrorFormat",
1309
+ "fixed_parameter_count": 2,
1310
+ "form": "function_or_declaration"
1311
+ }
1312
+ }
1313
+ },
1314
+ {
1315
+ "root_index": 0,
1316
+ "path": "google/protobuf_c/ruby-upb.c",
1317
+ "line": 3426,
1318
+ "column": 70,
1319
+ "kind": "struct_argument_to_variadic_candidate",
1320
+ "confidence": "high",
1321
+ "evidence": "upb_Status_SetErrorFormat(d->status, , d->line, (int)(d->ptr - d->line_begin))",
1322
+ "details": {
1323
+ "callee": "upb_Status_SetErrorFormat",
1324
+ "argument_index": 2,
1325
+ "fixed_parameter_count": 2,
1326
+ "argument_shape": "known_struct_or_union_variable",
1327
+ "api_source": "scanned_declaration",
1328
+ "declaration": {
1329
+ "root_index": 0,
1330
+ "path": "google/protobuf_c/ruby-upb.c",
1331
+ "line": 2261,
1332
+ "column": 6,
1333
+ "name": "upb_Status_SetErrorFormat",
1334
+ "fixed_parameter_count": 2,
1335
+ "form": "function_or_declaration"
1336
+ }
1337
+ }
1338
+ },
1339
+ {
1340
+ "root_index": 0,
1341
+ "path": "google/protobuf_c/ruby-upb.c",
1342
+ "line": 3426,
1343
+ "column": 79,
1344
+ "kind": "struct_argument_to_variadic_candidate",
1345
+ "confidence": "high",
1346
+ "evidence": "upb_Status_SetErrorFormat(d->status, , d->line, (int)(d->ptr - d->line_begin))",
1347
+ "details": {
1348
+ "callee": "upb_Status_SetErrorFormat",
1349
+ "argument_index": 3,
1350
+ "fixed_parameter_count": 2,
1351
+ "argument_shape": "known_struct_or_union_variable",
1352
+ "api_source": "scanned_declaration",
1353
+ "declaration": {
1354
+ "root_index": 0,
1355
+ "path": "google/protobuf_c/ruby-upb.c",
1356
+ "line": 2261,
1357
+ "column": 6,
1358
+ "name": "upb_Status_SetErrorFormat",
1359
+ "fixed_parameter_count": 2,
1360
+ "form": "function_or_declaration"
1361
+ }
1362
+ }
1363
+ },
1364
+ {
1365
+ "root_index": 0,
1366
+ "path": "google/protobuf_c/ruby-upb.c",
1367
+ "line": 4024,
1368
+ "column": 81,
1369
+ "kind": "struct_argument_to_variadic_candidate",
1370
+ "confidence": "high",
1371
+ "evidence": "jsondec_errf(d, PRId64 , dbl, val.int64_val)",
1372
+ "details": {
1373
+ "callee": "jsondec_errf",
1374
+ "argument_index": 3,
1375
+ "fixed_parameter_count": 2,
1376
+ "argument_shape": "known_struct_or_union_variable",
1377
+ "api_source": "scanned_declaration",
1378
+ "declaration": {
1379
+ "root_index": 0,
1380
+ "path": "google/protobuf_c/ruby-upb.c",
1381
+ "line": 3424,
1382
+ "column": 26,
1383
+ "name": "jsondec_errf",
1384
+ "fixed_parameter_count": 2,
1385
+ "form": "function_or_declaration"
1386
+ }
1387
+ }
1388
+ },
1389
+ {
1390
+ "root_index": 0,
1391
+ "path": "google/protobuf_c/ruby-upb.c",
1392
+ "line": 4062,
1393
+ "column": 81,
1394
+ "kind": "struct_argument_to_variadic_candidate",
1395
+ "confidence": "high",
1396
+ "evidence": "jsondec_errf(d, PRIu64 , dbl, val.uint64_val)",
1397
+ "details": {
1398
+ "callee": "jsondec_errf",
1399
+ "argument_index": 3,
1400
+ "fixed_parameter_count": 2,
1401
+ "argument_shape": "known_struct_or_union_variable",
1402
+ "api_source": "scanned_declaration",
1403
+ "declaration": {
1404
+ "root_index": 0,
1405
+ "path": "google/protobuf_c/ruby-upb.c",
1406
+ "line": 3424,
1407
+ "column": 26,
1408
+ "name": "jsondec_errf",
1409
+ "fixed_parameter_count": 2,
1410
+ "form": "function_or_declaration"
1411
+ }
1412
+ }
1413
+ },
1414
+ {
1415
+ "root_index": 0,
1416
+ "path": "google/protobuf_c/ruby-upb.c",
1417
+ "line": 4159,
1418
+ "column": 77,
1419
+ "kind": "struct_argument_to_variadic_candidate",
1420
+ "confidence": "high",
1421
+ "evidence": "jsondec_errf(d, UPB_STRINGVIEW_FORMAT , UPB_STRINGVIEW_ARGS(str))",
1422
+ "details": {
1423
+ "callee": "jsondec_errf",
1424
+ "argument_index": 2,
1425
+ "fixed_parameter_count": 2,
1426
+ "argument_shape": "known_struct_or_union_variable",
1427
+ "api_source": "scanned_declaration",
1428
+ "declaration": {
1429
+ "root_index": 0,
1430
+ "path": "google/protobuf_c/ruby-upb.c",
1431
+ "line": 3424,
1432
+ "column": 26,
1433
+ "name": "jsondec_errf",
1434
+ "fixed_parameter_count": 2,
1435
+ "form": "function_or_declaration"
1436
+ }
1437
+ }
1438
+ },
1439
+ {
1440
+ "root_index": 0,
1441
+ "path": "google/protobuf_c/ruby-upb.c",
1442
+ "line": 5100,
1443
+ "column": 36,
1444
+ "kind": "struct_argument_to_variadic_candidate",
1445
+ "confidence": "high",
1446
+ "evidence": "jsonenc_printf(e, PRId32, val)",
1447
+ "details": {
1448
+ "callee": "jsonenc_printf",
1449
+ "argument_index": 2,
1450
+ "fixed_parameter_count": 2,
1451
+ "argument_shape": "known_struct_or_union_variable",
1452
+ "api_source": "scanned_declaration",
1453
+ "declaration": {
1454
+ "root_index": 0,
1455
+ "path": "google/protobuf_c/ruby-upb.c",
1456
+ "line": 4979,
1457
+ "column": 13,
1458
+ "name": "jsonenc_printf",
1459
+ "fixed_parameter_count": 2,
1460
+ "form": "function_or_declaration"
1461
+ }
1462
+ }
1463
+ },
1464
+ {
1465
+ "root_index": 0,
1466
+ "path": "google/protobuf_c/ruby-upb.c",
1467
+ "line": 5483,
1468
+ "column": 36,
1469
+ "kind": "struct_argument_to_variadic_candidate",
1470
+ "confidence": "high",
1471
+ "evidence": "jsonenc_printf(e, PRId32, val.int32_val)",
1472
+ "details": {
1473
+ "callee": "jsonenc_printf",
1474
+ "argument_index": 2,
1475
+ "fixed_parameter_count": 2,
1476
+ "argument_shape": "known_struct_or_union_variable",
1477
+ "api_source": "scanned_declaration",
1478
+ "declaration": {
1479
+ "root_index": 0,
1480
+ "path": "google/protobuf_c/ruby-upb.c",
1481
+ "line": 4979,
1482
+ "column": 13,
1483
+ "name": "jsonenc_printf",
1484
+ "fixed_parameter_count": 2,
1485
+ "form": "function_or_declaration"
1486
+ }
1487
+ }
1488
+ },
1489
+ {
1490
+ "root_index": 0,
1491
+ "path": "google/protobuf_c/ruby-upb.c",
1492
+ "line": 5486,
1493
+ "column": 36,
1494
+ "kind": "struct_argument_to_variadic_candidate",
1495
+ "confidence": "high",
1496
+ "evidence": "jsonenc_printf(e, PRIu32, val.uint32_val)",
1497
+ "details": {
1498
+ "callee": "jsonenc_printf",
1499
+ "argument_index": 2,
1500
+ "fixed_parameter_count": 2,
1501
+ "argument_shape": "known_struct_or_union_variable",
1502
+ "api_source": "scanned_declaration",
1503
+ "declaration": {
1504
+ "root_index": 0,
1505
+ "path": "google/protobuf_c/ruby-upb.c",
1506
+ "line": 4979,
1507
+ "column": 13,
1508
+ "name": "jsonenc_printf",
1509
+ "fixed_parameter_count": 2,
1510
+ "form": "function_or_declaration"
1511
+ }
1512
+ }
1513
+ },
1514
+ {
1515
+ "root_index": 0,
1516
+ "path": "google/protobuf_c/ruby-upb.c",
1517
+ "line": 5489,
1518
+ "column": 43,
1519
+ "kind": "struct_argument_to_variadic_candidate",
1520
+ "confidence": "high",
1521
+ "evidence": "jsonenc_printf(e, PRId64 , val.int64_val)",
1522
+ "details": {
1523
+ "callee": "jsonenc_printf",
1524
+ "argument_index": 2,
1525
+ "fixed_parameter_count": 2,
1526
+ "argument_shape": "known_struct_or_union_variable",
1527
+ "api_source": "scanned_declaration",
1528
+ "declaration": {
1529
+ "root_index": 0,
1530
+ "path": "google/protobuf_c/ruby-upb.c",
1531
+ "line": 4979,
1532
+ "column": 13,
1533
+ "name": "jsonenc_printf",
1534
+ "fixed_parameter_count": 2,
1535
+ "form": "function_or_declaration"
1536
+ }
1537
+ }
1538
+ },
1539
+ {
1540
+ "root_index": 0,
1541
+ "path": "google/protobuf_c/ruby-upb.c",
1542
+ "line": 5492,
1543
+ "column": 43,
1544
+ "kind": "struct_argument_to_variadic_candidate",
1545
+ "confidence": "high",
1546
+ "evidence": "jsonenc_printf(e, PRIu64 , val.uint64_val)",
1547
+ "details": {
1548
+ "callee": "jsonenc_printf",
1549
+ "argument_index": 2,
1550
+ "fixed_parameter_count": 2,
1551
+ "argument_shape": "known_struct_or_union_variable",
1552
+ "api_source": "scanned_declaration",
1553
+ "declaration": {
1554
+ "root_index": 0,
1555
+ "path": "google/protobuf_c/ruby-upb.c",
1556
+ "line": 4979,
1557
+ "column": 13,
1558
+ "name": "jsonenc_printf",
1559
+ "fixed_parameter_count": 2,
1560
+ "form": "function_or_declaration"
1561
+ }
1562
+ }
1563
+ },
1564
+ {
1565
+ "root_index": 0,
1566
+ "path": "google/protobuf_c/ruby-upb.c",
1567
+ "line": 5518,
1568
+ "column": 36,
1569
+ "kind": "struct_argument_to_variadic_candidate",
1570
+ "confidence": "high",
1571
+ "evidence": "jsonenc_printf(e, PRId32, val.int32_val)",
1572
+ "details": {
1573
+ "callee": "jsonenc_printf",
1574
+ "argument_index": 2,
1575
+ "fixed_parameter_count": 2,
1576
+ "argument_shape": "known_struct_or_union_variable",
1577
+ "api_source": "scanned_declaration",
1578
+ "declaration": {
1579
+ "root_index": 0,
1580
+ "path": "google/protobuf_c/ruby-upb.c",
1581
+ "line": 4979,
1582
+ "column": 13,
1583
+ "name": "jsonenc_printf",
1584
+ "fixed_parameter_count": 2,
1585
+ "form": "function_or_declaration"
1586
+ }
1587
+ }
1588
+ },
1589
+ {
1590
+ "root_index": 0,
1591
+ "path": "google/protobuf_c/ruby-upb.c",
1592
+ "line": 5521,
1593
+ "column": 36,
1594
+ "kind": "struct_argument_to_variadic_candidate",
1595
+ "confidence": "high",
1596
+ "evidence": "jsonenc_printf(e, PRIu32, val.uint32_val)",
1597
+ "details": {
1598
+ "callee": "jsonenc_printf",
1599
+ "argument_index": 2,
1600
+ "fixed_parameter_count": 2,
1601
+ "argument_shape": "known_struct_or_union_variable",
1602
+ "api_source": "scanned_declaration",
1603
+ "declaration": {
1604
+ "root_index": 0,
1605
+ "path": "google/protobuf_c/ruby-upb.c",
1606
+ "line": 4979,
1607
+ "column": 13,
1608
+ "name": "jsonenc_printf",
1609
+ "fixed_parameter_count": 2,
1610
+ "form": "function_or_declaration"
1611
+ }
1612
+ }
1613
+ },
1614
+ {
1615
+ "root_index": 0,
1616
+ "path": "google/protobuf_c/ruby-upb.c",
1617
+ "line": 5524,
1618
+ "column": 36,
1619
+ "kind": "struct_argument_to_variadic_candidate",
1620
+ "confidence": "high",
1621
+ "evidence": "jsonenc_printf(e, PRId64, val.int64_val)",
1622
+ "details": {
1623
+ "callee": "jsonenc_printf",
1624
+ "argument_index": 2,
1625
+ "fixed_parameter_count": 2,
1626
+ "argument_shape": "known_struct_or_union_variable",
1627
+ "api_source": "scanned_declaration",
1628
+ "declaration": {
1629
+ "root_index": 0,
1630
+ "path": "google/protobuf_c/ruby-upb.c",
1631
+ "line": 4979,
1632
+ "column": 13,
1633
+ "name": "jsonenc_printf",
1634
+ "fixed_parameter_count": 2,
1635
+ "form": "function_or_declaration"
1636
+ }
1637
+ }
1638
+ },
1639
+ {
1640
+ "root_index": 0,
1641
+ "path": "google/protobuf_c/ruby-upb.c",
1642
+ "line": 5527,
1643
+ "column": 36,
1644
+ "kind": "struct_argument_to_variadic_candidate",
1645
+ "confidence": "high",
1646
+ "evidence": "jsonenc_printf(e, PRIu64, val.uint64_val)",
1647
+ "details": {
1648
+ "callee": "jsonenc_printf",
1649
+ "argument_index": 2,
1650
+ "fixed_parameter_count": 2,
1651
+ "argument_shape": "known_struct_or_union_variable",
1652
+ "api_source": "scanned_declaration",
1653
+ "declaration": {
1654
+ "root_index": 0,
1655
+ "path": "google/protobuf_c/ruby-upb.c",
1656
+ "line": 4979,
1657
+ "column": 13,
1658
+ "name": "jsonenc_printf",
1659
+ "fixed_parameter_count": 2,
1660
+ "form": "function_or_declaration"
1661
+ }
1662
+ }
1663
+ },
1664
+ {
1665
+ "root_index": 0,
1666
+ "path": "google/protobuf_c/ruby-upb.c",
1667
+ "line": 5743,
1668
+ "column": 39,
1669
+ "kind": "struct_argument_to_variadic_candidate",
1670
+ "confidence": "medium",
1671
+ "evidence": "snprintf(buf, size, , DBL_DIG, val)",
1672
+ "details": {
1673
+ "callee": "snprintf",
1674
+ "argument_index": 4,
1675
+ "fixed_parameter_count": 3,
1676
+ "argument_shape": "known_struct_or_union_variable",
1677
+ "api_source": "known_variadic_api"
1678
+ }
1679
+ },
1680
+ {
1681
+ "root_index": 0,
1682
+ "path": "google/protobuf_c/ruby-upb.c",
1683
+ "line": 5745,
1684
+ "column": 45,
1685
+ "kind": "struct_argument_to_variadic_candidate",
1686
+ "confidence": "medium",
1687
+ "evidence": "snprintf(buf, size, , DBL_DIG + 2, val)",
1688
+ "details": {
1689
+ "callee": "snprintf",
1690
+ "argument_index": 4,
1691
+ "fixed_parameter_count": 3,
1692
+ "argument_shape": "known_struct_or_union_variable",
1693
+ "api_source": "known_variadic_api"
1694
+ }
1695
+ },
1696
+ {
1697
+ "root_index": 0,
1698
+ "path": "google/protobuf_c/ruby-upb.c",
1699
+ "line": 5757,
1700
+ "column": 39,
1701
+ "kind": "struct_argument_to_variadic_candidate",
1702
+ "confidence": "medium",
1703
+ "evidence": "snprintf(buf, size, , FLT_DIG, val)",
1704
+ "details": {
1705
+ "callee": "snprintf",
1706
+ "argument_index": 4,
1707
+ "fixed_parameter_count": 3,
1708
+ "argument_shape": "known_struct_or_union_variable",
1709
+ "api_source": "known_variadic_api"
1710
+ }
1711
+ },
1712
+ {
1713
+ "root_index": 0,
1714
+ "path": "google/protobuf_c/ruby-upb.c",
1715
+ "line": 5759,
1716
+ "column": 45,
1717
+ "kind": "struct_argument_to_variadic_candidate",
1718
+ "confidence": "medium",
1719
+ "evidence": "snprintf(buf, size, , FLT_DIG + 3, val)",
1720
+ "details": {
1721
+ "callee": "snprintf",
1722
+ "argument_index": 4,
1723
+ "fixed_parameter_count": 3,
1724
+ "argument_shape": "known_struct_or_union_variable",
1725
+ "api_source": "known_variadic_api"
1726
+ }
1727
+ },
1728
+ {
1729
+ "root_index": 0,
1730
+ "path": "google/protobuf_c/ruby-upb.c",
1731
+ "line": 10770,
1732
+ "column": 63,
1733
+ "kind": "struct_argument_to_variadic_candidate",
1734
+ "confidence": "high",
1735
+ "evidence": "upb_Status_SetErrorFormat(status, , sym.data)",
1736
+ "details": {
1737
+ "callee": "upb_Status_SetErrorFormat",
1738
+ "argument_index": 2,
1739
+ "fixed_parameter_count": 2,
1740
+ "argument_shape": "known_struct_or_union_variable",
1741
+ "api_source": "scanned_declaration",
1742
+ "declaration": {
1743
+ "root_index": 0,
1744
+ "path": "google/protobuf_c/ruby-upb.c",
1745
+ "line": 2261,
1746
+ "column": 6,
1747
+ "name": "upb_Status_SetErrorFormat",
1748
+ "fixed_parameter_count": 2,
1749
+ "form": "function_or_declaration"
1750
+ }
1751
+ }
1752
+ },
1753
+ {
1754
+ "root_index": 0,
1755
+ "path": "google/protobuf_c/ruby-upb.c",
1756
+ "line": 11404,
1757
+ "column": 67,
1758
+ "kind": "struct_argument_to_variadic_candidate",
1759
+ "confidence": "high",
1760
+ "evidence": "_upb_DefBuilder_Errf(ctx, , status.msg)",
1761
+ "details": {
1762
+ "callee": "_upb_DefBuilder_Errf",
1763
+ "argument_index": 2,
1764
+ "fixed_parameter_count": 2,
1765
+ "argument_shape": "known_struct_or_union_variable",
1766
+ "api_source": "scanned_declaration",
1767
+ "declaration": {
1768
+ "root_index": 0,
1769
+ "path": "google/protobuf_c/ruby-upb.c",
1770
+ "line": 13248,
1771
+ "column": 6,
1772
+ "name": "_upb_DefBuilder_Errf",
1773
+ "fixed_parameter_count": 2,
1774
+ "form": "function_or_declaration"
1775
+ }
1776
+ }
1777
+ },
1778
+ {
1779
+ "root_index": 0,
1780
+ "path": "google/protobuf_c/ruby-upb.c",
1781
+ "line": 11445,
1782
+ "column": 76,
1783
+ "kind": "struct_argument_to_variadic_candidate",
1784
+ "confidence": "high",
1785
+ "evidence": "_upb_DefBuilder_Errf(ctx, , e->full_name)",
1786
+ "details": {
1787
+ "callee": "_upb_DefBuilder_Errf",
1788
+ "argument_index": 2,
1789
+ "fixed_parameter_count": 2,
1790
+ "argument_shape": "known_struct_or_union_variable",
1791
+ "api_source": "scanned_declaration",
1792
+ "declaration": {
1793
+ "root_index": 0,
1794
+ "path": "google/protobuf_c/ruby-upb.c",
1795
+ "line": 13248,
1796
+ "column": 6,
1797
+ "name": "_upb_DefBuilder_Errf",
1798
+ "fixed_parameter_count": 2,
1799
+ "form": "function_or_declaration"
1800
+ }
1801
+ }
1802
+ },
1803
+ {
1804
+ "root_index": 0,
1805
+ "path": "google/protobuf_c/ruby-upb.c",
1806
+ "line": 11460,
1807
+ "column": 78,
1808
+ "kind": "struct_argument_to_variadic_candidate",
1809
+ "confidence": "high",
1810
+ "evidence": "_upb_DefBuilder_Errf(ctx, , upb_EnumDef_FullName(e))",
1811
+ "details": {
1812
+ "callee": "_upb_DefBuilder_Errf",
1813
+ "argument_index": 2,
1814
+ "fixed_parameter_count": 2,
1815
+ "argument_shape": "known_struct_or_union_variable",
1816
+ "api_source": "scanned_declaration",
1817
+ "declaration": {
1818
+ "root_index": 0,
1819
+ "path": "google/protobuf_c/ruby-upb.c",
1820
+ "line": 13248,
1821
+ "column": 6,
1822
+ "name": "_upb_DefBuilder_Errf",
1823
+ "fixed_parameter_count": 2,
1824
+ "form": "function_or_declaration"
1825
+ }
1826
+ }
1827
+ },
1828
+ {
1829
+ "root_index": 0,
1830
+ "path": "google/protobuf_c/ruby-upb.c",
1831
+ "line": 11561,
1832
+ "column": 49,
1833
+ "kind": "struct_argument_to_variadic_candidate",
1834
+ "confidence": "high",
1835
+ "evidence": "_upb_DefBuilder_Errf(ctx, , (int)start, (int)end, upb_EnumDef_FullName(e))",
1836
+ "details": {
1837
+ "callee": "_upb_DefBuilder_Errf",
1838
+ "argument_index": 4,
1839
+ "fixed_parameter_count": 2,
1840
+ "argument_shape": "known_struct_or_union_variable",
1841
+ "api_source": "scanned_declaration",
1842
+ "declaration": {
1843
+ "root_index": 0,
1844
+ "path": "google/protobuf_c/ruby-upb.c",
1845
+ "line": 13248,
1846
+ "column": 6,
1847
+ "name": "_upb_DefBuilder_Errf",
1848
+ "fixed_parameter_count": 2,
1849
+ "form": "function_or_declaration"
1850
+ }
1851
+ }
1852
+ },
1853
+ {
1854
+ "root_index": 0,
1855
+ "path": "google/protobuf_c/ruby-upb.c",
1856
+ "line": 12155,
1857
+ "column": 70,
1858
+ "kind": "struct_argument_to_variadic_candidate",
1859
+ "confidence": "high",
1860
+ "evidence": "_upb_DefBuilder_Errf(ctx, , (int)len, str)",
1861
+ "details": {
1862
+ "callee": "_upb_DefBuilder_Errf",
1863
+ "argument_index": 3,
1864
+ "fixed_parameter_count": 2,
1865
+ "argument_shape": "known_struct_or_union_variable",
1866
+ "api_source": "scanned_declaration",
1867
+ "declaration": {
1868
+ "root_index": 0,
1869
+ "path": "google/protobuf_c/ruby-upb.c",
1870
+ "line": 13248,
1871
+ "column": 6,
1872
+ "name": "_upb_DefBuilder_Errf",
1873
+ "fixed_parameter_count": 2,
1874
+ "form": "function_or_declaration"
1875
+ }
1876
+ }
1877
+ },
1878
+ {
1879
+ "root_index": 0,
1880
+ "path": "google/protobuf_c/ruby-upb.c",
1881
+ "line": 12250,
1882
+ "column": 33,
1883
+ "kind": "struct_argument_to_variadic_candidate",
1884
+ "confidence": "high",
1885
+ "evidence": "_upb_DefBuilder_Errf(ctx, , (int)len, str, upb_FieldDef_FullName(f), (int)upb_FieldDef_Type(f))",
1886
+ "details": {
1887
+ "callee": "_upb_DefBuilder_Errf",
1888
+ "argument_index": 3,
1889
+ "fixed_parameter_count": 2,
1890
+ "argument_shape": "known_struct_or_union_variable",
1891
+ "api_source": "scanned_declaration",
1892
+ "declaration": {
1893
+ "root_index": 0,
1894
+ "path": "google/protobuf_c/ruby-upb.c",
1895
+ "line": 13248,
1896
+ "column": 6,
1897
+ "name": "_upb_DefBuilder_Errf",
1898
+ "fixed_parameter_count": 2,
1899
+ "form": "function_or_declaration"
1900
+ }
1901
+ }
1902
+ },
1903
+ {
1904
+ "root_index": 0,
1905
+ "path": "google/protobuf_c/ruby-upb.c",
1906
+ "line": 12282,
1907
+ "column": 43,
1908
+ "kind": "struct_argument_to_variadic_candidate",
1909
+ "confidence": "high",
1910
+ "evidence": "_upb_DefBuilder_Errf(ctx, , f->full_name, upb_EnumDef_FullName(f->sub.enumdef))",
1911
+ "details": {
1912
+ "callee": "_upb_DefBuilder_Errf",
1913
+ "argument_index": 3,
1914
+ "fixed_parameter_count": 2,
1915
+ "argument_shape": "known_struct_or_union_variable",
1916
+ "api_source": "scanned_declaration",
1917
+ "declaration": {
1918
+ "root_index": 0,
1919
+ "path": "google/protobuf_c/ruby-upb.c",
1920
+ "line": 13248,
1921
+ "column": 6,
1922
+ "name": "_upb_DefBuilder_Errf",
1923
+ "fixed_parameter_count": 2,
1924
+ "form": "function_or_declaration"
1925
+ }
1926
+ }
1927
+ },
1928
+ {
1929
+ "root_index": 0,
1930
+ "path": "google/protobuf_c/ruby-upb.c",
1931
+ "line": 13119,
1932
+ "column": 60,
1933
+ "kind": "struct_argument_to_variadic_candidate",
1934
+ "confidence": "high",
1935
+ "evidence": "_upb_DefBuilder_Errf(ctx, UPB_STRINGVIEW_FORMAT , UPB_STRINGVIEW_ARGS(str))",
1936
+ "details": {
1937
+ "callee": "_upb_DefBuilder_Errf",
1938
+ "argument_index": 2,
1939
+ "fixed_parameter_count": 2,
1940
+ "argument_shape": "known_struct_or_union_variable",
1941
+ "api_source": "scanned_declaration",
1942
+ "declaration": {
1943
+ "root_index": 0,
1944
+ "path": "google/protobuf_c/ruby-upb.c",
1945
+ "line": 13248,
1946
+ "column": 6,
1947
+ "name": "_upb_DefBuilder_Errf",
1948
+ "fixed_parameter_count": 2,
1949
+ "form": "function_or_declaration"
1950
+ }
1951
+ }
1952
+ },
1953
+ {
1954
+ "root_index": 0,
1955
+ "path": "google/protobuf_c/ruby-upb.c",
1956
+ "line": 15249,
1957
+ "column": 41,
1958
+ "kind": "struct_argument_to_variadic_candidate",
1959
+ "confidence": "high",
1960
+ "evidence": "printf_dup(ctx, PRId64, d.int64_val)",
1961
+ "details": {
1962
+ "callee": "printf_dup",
1963
+ "argument_index": 2,
1964
+ "fixed_parameter_count": 2,
1965
+ "argument_shape": "known_struct_or_union_variable",
1966
+ "api_source": "scanned_declaration",
1967
+ "declaration": {
1968
+ "root_index": 0,
1969
+ "path": "google/protobuf_c/ruby-upb.c",
1970
+ "line": 15153,
1971
+ "column": 23,
1972
+ "name": "printf_dup",
1973
+ "fixed_parameter_count": 2,
1974
+ "form": "function_or_declaration"
1975
+ }
1976
+ }
1977
+ },
1978
+ {
1979
+ "root_index": 0,
1980
+ "path": "google/protobuf_c/ruby-upb.c",
1981
+ "line": 15251,
1982
+ "column": 41,
1983
+ "kind": "struct_argument_to_variadic_candidate",
1984
+ "confidence": "high",
1985
+ "evidence": "printf_dup(ctx, PRIu64, d.uint64_val)",
1986
+ "details": {
1987
+ "callee": "printf_dup",
1988
+ "argument_index": 2,
1989
+ "fixed_parameter_count": 2,
1990
+ "argument_shape": "known_struct_or_union_variable",
1991
+ "api_source": "scanned_declaration",
1992
+ "declaration": {
1993
+ "root_index": 0,
1994
+ "path": "google/protobuf_c/ruby-upb.c",
1995
+ "line": 15153,
1996
+ "column": 23,
1997
+ "name": "printf_dup",
1998
+ "fixed_parameter_count": 2,
1999
+ "form": "function_or_declaration"
2000
+ }
2001
+ }
2002
+ },
2003
+ {
2004
+ "root_index": 0,
2005
+ "path": "google/protobuf_c/ruby-upb.c",
2006
+ "line": 15253,
2007
+ "column": 41,
2008
+ "kind": "struct_argument_to_variadic_candidate",
2009
+ "confidence": "high",
2010
+ "evidence": "printf_dup(ctx, PRId32, d.int32_val)",
2011
+ "details": {
2012
+ "callee": "printf_dup",
2013
+ "argument_index": 2,
2014
+ "fixed_parameter_count": 2,
2015
+ "argument_shape": "known_struct_or_union_variable",
2016
+ "api_source": "scanned_declaration",
2017
+ "declaration": {
2018
+ "root_index": 0,
2019
+ "path": "google/protobuf_c/ruby-upb.c",
2020
+ "line": 15153,
2021
+ "column": 23,
2022
+ "name": "printf_dup",
2023
+ "fixed_parameter_count": 2,
2024
+ "form": "function_or_declaration"
2025
+ }
2026
+ }
2027
+ },
2028
+ {
2029
+ "root_index": 0,
2030
+ "path": "google/protobuf_c/ruby-upb.c",
2031
+ "line": 15255,
2032
+ "column": 41,
2033
+ "kind": "struct_argument_to_variadic_candidate",
2034
+ "confidence": "high",
2035
+ "evidence": "printf_dup(ctx, PRIu32, d.uint32_val)",
2036
+ "details": {
2037
+ "callee": "printf_dup",
2038
+ "argument_index": 2,
2039
+ "fixed_parameter_count": 2,
2040
+ "argument_shape": "known_struct_or_union_variable",
2041
+ "api_source": "scanned_declaration",
2042
+ "declaration": {
2043
+ "root_index": 0,
2044
+ "path": "google/protobuf_c/ruby-upb.c",
2045
+ "line": 15153,
2046
+ "column": 23,
2047
+ "name": "printf_dup",
2048
+ "fixed_parameter_count": 2,
2049
+ "form": "function_or_declaration"
2050
+ }
2051
+ }
2052
+ },
2053
+ {
2054
+ "root_index": 0,
2055
+ "path": "google/protobuf_c/ruby-upb.c",
2056
+ "line": 15257,
2057
+ "column": 37,
2058
+ "kind": "struct_argument_to_variadic_candidate",
2059
+ "confidence": "high",
2060
+ "evidence": "printf_dup(ctx, , d.float_val)",
2061
+ "details": {
2062
+ "callee": "printf_dup",
2063
+ "argument_index": 2,
2064
+ "fixed_parameter_count": 2,
2065
+ "argument_shape": "known_struct_or_union_variable",
2066
+ "api_source": "scanned_declaration",
2067
+ "declaration": {
2068
+ "root_index": 0,
2069
+ "path": "google/protobuf_c/ruby-upb.c",
2070
+ "line": 15153,
2071
+ "column": 23,
2072
+ "name": "printf_dup",
2073
+ "fixed_parameter_count": 2,
2074
+ "form": "function_or_declaration"
2075
+ }
2076
+ }
2077
+ },
2078
+ {
2079
+ "root_index": 0,
2080
+ "path": "google/protobuf_c/ruby-upb.c",
2081
+ "line": 15259,
2082
+ "column": 38,
2083
+ "kind": "struct_argument_to_variadic_candidate",
2084
+ "confidence": "high",
2085
+ "evidence": "printf_dup(ctx, , d.double_val)",
2086
+ "details": {
2087
+ "callee": "printf_dup",
2088
+ "argument_index": 2,
2089
+ "fixed_parameter_count": 2,
2090
+ "argument_shape": "known_struct_or_union_variable",
2091
+ "api_source": "scanned_declaration",
2092
+ "declaration": {
2093
+ "root_index": 0,
2094
+ "path": "google/protobuf_c/ruby-upb.c",
2095
+ "line": 15153,
2096
+ "column": 23,
2097
+ "name": "printf_dup",
2098
+ "fixed_parameter_count": 2,
2099
+ "form": "function_or_declaration"
2100
+ }
2101
+ }
2102
+ },
2103
+ {
2104
+ "root_index": 0,
2105
+ "path": "google/protobuf_c/ruby-upb.h",
2106
+ "line": 5502,
2107
+ "column": 6,
2108
+ "kind": "va_list_wrapper",
2109
+ "confidence": "medium",
2110
+ "evidence": "upb_Status_VSetErrorFormat(upb_Status* status, const char* fmt, va_list args)",
2111
+ "details": {
2112
+ "role": "function_parameter_or_call"
2113
+ }
2114
+ },
2115
+ {
2116
+ "root_index": 0,
2117
+ "path": "google/protobuf_c/ruby-upb.h",
2118
+ "line": 5504,
2119
+ "column": 6,
2120
+ "kind": "va_list_wrapper",
2121
+ "confidence": "medium",
2122
+ "evidence": "upb_Status_VAppendErrorFormat(upb_Status* status, const char* fmt, va_list args)",
2123
+ "details": {
2124
+ "role": "function_parameter_or_call"
2125
+ }
2126
+ },
2127
+ {
2128
+ "root_index": 0,
2129
+ "path": "google/protobuf_c/ruby-upb.h",
2130
+ "line": 15144,
2131
+ "column": 16,
2132
+ "kind": "va_list_wrapper",
2133
+ "confidence": "medium",
2134
+ "evidence": "_upb_vsnprintf(char* buf, size_t size, const char* fmt, va_list ap)",
2135
+ "details": {
2136
+ "role": "function_parameter_or_call"
2137
+ }
2138
+ }
2139
+ ],
2140
+ "errors": [],
2141
+ "not_proof": true,
2142
+ "not_acceptance_gate": true
2143
+ },
2144
+ "classification": {
2145
+ "manual": "pending",
2146
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
2147
+ "reviewer": null,
2148
+ "reviewed_at": null,
2149
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
2150
+ },
2151
+ "verification": {
2152
+ "recorded_in_data_verified_gems": true,
2153
+ "record_path": "data/verified_gems.json",
2154
+ "control": "not-run-by-this-scan",
2155
+ "rubycc": "not-run-by-this-scan",
2156
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
2157
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
2158
+ }
2159
+ },
2160
+ {
2161
+ "name": "bootsnap",
2162
+ "version": "1.24.6",
2163
+ "r10_profile": "default-source",
2164
+ "r10_extconf_args": [],
2165
+ "machine_gate": {
2166
+ "status": "ok",
2167
+ "ext_c_files": 1,
2168
+ "ext_h_files": 0
2169
+ },
2170
+ "provenance": {
2171
+ "gem_url": "https://rubygems.org/downloads/bootsnap-1.24.6.gem",
2172
+ "gem_sha256": "c60bab88c70332290f0a2636a288f675299eb4f804a02a3c085b42eca9da164a",
2173
+ "source_tarball_sha256": null,
2174
+ "cache_relative_path": "bootsnap-1.24.6.gem",
2175
+ "unpacked_relative_path": "unpacked/bootsnap-1.24.6"
2176
+ },
2177
+ "generated_source": {
2178
+ "status": "not-reviewed",
2179
+ "commands": null,
2180
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
2181
+ },
2182
+ "scanner": {
2183
+ "files_scanned": 1,
2184
+ "summary": {
2185
+ "total_findings": 0,
2186
+ "by_kind": {}
2187
+ },
2188
+ "findings": [],
2189
+ "errors": [],
2190
+ "not_proof": true,
2191
+ "not_acceptance_gate": true
2192
+ },
2193
+ "classification": {
2194
+ "manual": "pending",
2195
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
2196
+ "reviewer": null,
2197
+ "reviewed_at": null,
2198
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
2199
+ },
2200
+ "verification": {
2201
+ "recorded_in_data_verified_gems": true,
2202
+ "record_path": "data/verified_gems.json",
2203
+ "control": "not-run-by-this-scan",
2204
+ "rubycc": "not-run-by-this-scan",
2205
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
2206
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
2207
+ }
2208
+ },
2209
+ {
2210
+ "name": "oj",
2211
+ "version": "3.17.4",
2212
+ "r10_profile": "default-source",
2213
+ "r10_extconf_args": [],
2214
+ "machine_gate": {
2215
+ "status": "ok",
2216
+ "ext_c_files": 41,
2217
+ "ext_h_files": 25
2218
+ },
2219
+ "provenance": {
2220
+ "gem_url": "https://rubygems.org/downloads/oj-3.17.4.gem",
2221
+ "gem_sha256": "733fe3bcb7a5d985bd2e943620b7bea1bffb2809318af7021c841b833a6858e1",
2222
+ "source_tarball_sha256": null,
2223
+ "cache_relative_path": "oj-3.17.4.gem",
2224
+ "unpacked_relative_path": "unpacked/oj-3.17.4"
2225
+ },
2226
+ "generated_source": {
2227
+ "status": "not-reviewed",
2228
+ "commands": null,
2229
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
2230
+ },
2231
+ "scanner": {
2232
+ "files_scanned": 66,
2233
+ "summary": {
2234
+ "total_findings": 60,
2235
+ "by_kind": {
2236
+ "struct_argument_to_variadic_candidate": 60
2237
+ }
2238
+ },
2239
+ "findings": [
2240
+ {
2241
+ "root_index": 0,
2242
+ "path": "oj/dump.c",
2243
+ "line": 759,
2244
+ "column": 69,
2245
+ "kind": "struct_argument_to_variadic_candidate",
2246
+ "confidence": "medium",
2247
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2248
+ "details": {
2249
+ "callee": "sprintf",
2250
+ "argument_index": 2,
2251
+ "fixed_parameter_count": 2,
2252
+ "argument_shape": "known_struct_or_union_variable",
2253
+ "api_source": "known_variadic_api"
2254
+ }
2255
+ },
2256
+ {
2257
+ "root_index": 0,
2258
+ "path": "oj/dump.c",
2259
+ "line": 759,
2260
+ "column": 78,
2261
+ "kind": "struct_argument_to_variadic_candidate",
2262
+ "confidence": "medium",
2263
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2264
+ "details": {
2265
+ "callee": "sprintf",
2266
+ "argument_index": 3,
2267
+ "fixed_parameter_count": 2,
2268
+ "argument_shape": "known_struct_or_union_variable",
2269
+ "api_source": "known_variadic_api"
2270
+ }
2271
+ },
2272
+ {
2273
+ "root_index": 0,
2274
+ "path": "oj/dump.c",
2275
+ "line": 759,
2276
+ "column": 86,
2277
+ "kind": "struct_argument_to_variadic_candidate",
2278
+ "confidence": "medium",
2279
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2280
+ "details": {
2281
+ "callee": "sprintf",
2282
+ "argument_index": 4,
2283
+ "fixed_parameter_count": 2,
2284
+ "argument_shape": "known_struct_or_union_variable",
2285
+ "api_source": "known_variadic_api"
2286
+ }
2287
+ },
2288
+ {
2289
+ "root_index": 0,
2290
+ "path": "oj/dump.c",
2291
+ "line": 759,
2292
+ "column": 94,
2293
+ "kind": "struct_argument_to_variadic_candidate",
2294
+ "confidence": "medium",
2295
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2296
+ "details": {
2297
+ "callee": "sprintf",
2298
+ "argument_index": 5,
2299
+ "fixed_parameter_count": 2,
2300
+ "argument_shape": "known_struct_or_union_variable",
2301
+ "api_source": "known_variadic_api"
2302
+ }
2303
+ },
2304
+ {
2305
+ "root_index": 0,
2306
+ "path": "oj/dump.c",
2307
+ "line": 759,
2308
+ "column": 103,
2309
+ "kind": "struct_argument_to_variadic_candidate",
2310
+ "confidence": "medium",
2311
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2312
+ "details": {
2313
+ "callee": "sprintf",
2314
+ "argument_index": 6,
2315
+ "fixed_parameter_count": 2,
2316
+ "argument_shape": "known_struct_or_union_variable",
2317
+ "api_source": "known_variadic_api"
2318
+ }
2319
+ },
2320
+ {
2321
+ "root_index": 0,
2322
+ "path": "oj/dump.c",
2323
+ "line": 759,
2324
+ "column": 111,
2325
+ "kind": "struct_argument_to_variadic_candidate",
2326
+ "confidence": "medium",
2327
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2328
+ "details": {
2329
+ "callee": "sprintf",
2330
+ "argument_index": 7,
2331
+ "fixed_parameter_count": 2,
2332
+ "argument_shape": "known_struct_or_union_variable",
2333
+ "api_source": "known_variadic_api"
2334
+ }
2335
+ },
2336
+ {
2337
+ "root_index": 0,
2338
+ "path": "oj/dump.c",
2339
+ "line": 763,
2340
+ "column": 74,
2341
+ "kind": "struct_argument_to_variadic_candidate",
2342
+ "confidence": "medium",
2343
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2344
+ "details": {
2345
+ "callee": "sprintf",
2346
+ "argument_index": 2,
2347
+ "fixed_parameter_count": 2,
2348
+ "argument_shape": "known_struct_or_union_variable",
2349
+ "api_source": "known_variadic_api"
2350
+ }
2351
+ },
2352
+ {
2353
+ "root_index": 0,
2354
+ "path": "oj/dump.c",
2355
+ "line": 764,
2356
+ "column": 39,
2357
+ "kind": "struct_argument_to_variadic_candidate",
2358
+ "confidence": "medium",
2359
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2360
+ "details": {
2361
+ "callee": "sprintf",
2362
+ "argument_index": 3,
2363
+ "fixed_parameter_count": 2,
2364
+ "argument_shape": "known_struct_or_union_variable",
2365
+ "api_source": "known_variadic_api"
2366
+ }
2367
+ },
2368
+ {
2369
+ "root_index": 0,
2370
+ "path": "oj/dump.c",
2371
+ "line": 765,
2372
+ "column": 38,
2373
+ "kind": "struct_argument_to_variadic_candidate",
2374
+ "confidence": "medium",
2375
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2376
+ "details": {
2377
+ "callee": "sprintf",
2378
+ "argument_index": 4,
2379
+ "fixed_parameter_count": 2,
2380
+ "argument_shape": "known_struct_or_union_variable",
2381
+ "api_source": "known_variadic_api"
2382
+ }
2383
+ },
2384
+ {
2385
+ "root_index": 0,
2386
+ "path": "oj/dump.c",
2387
+ "line": 766,
2388
+ "column": 38,
2389
+ "kind": "struct_argument_to_variadic_candidate",
2390
+ "confidence": "medium",
2391
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2392
+ "details": {
2393
+ "callee": "sprintf",
2394
+ "argument_index": 5,
2395
+ "fixed_parameter_count": 2,
2396
+ "argument_shape": "known_struct_or_union_variable",
2397
+ "api_source": "known_variadic_api"
2398
+ }
2399
+ },
2400
+ {
2401
+ "root_index": 0,
2402
+ "path": "oj/dump.c",
2403
+ "line": 767,
2404
+ "column": 39,
2405
+ "kind": "struct_argument_to_variadic_candidate",
2406
+ "confidence": "medium",
2407
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2408
+ "details": {
2409
+ "callee": "sprintf",
2410
+ "argument_index": 6,
2411
+ "fixed_parameter_count": 2,
2412
+ "argument_shape": "known_struct_or_union_variable",
2413
+ "api_source": "known_variadic_api"
2414
+ }
2415
+ },
2416
+ {
2417
+ "root_index": 0,
2418
+ "path": "oj/dump.c",
2419
+ "line": 768,
2420
+ "column": 38,
2421
+ "kind": "struct_argument_to_variadic_candidate",
2422
+ "confidence": "medium",
2423
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2424
+ "details": {
2425
+ "callee": "sprintf",
2426
+ "argument_index": 7,
2427
+ "fixed_parameter_count": 2,
2428
+ "argument_shape": "known_struct_or_union_variable",
2429
+ "api_source": "known_variadic_api"
2430
+ }
2431
+ },
2432
+ {
2433
+ "root_index": 0,
2434
+ "path": "oj/dump.c",
2435
+ "line": 782,
2436
+ "column": 35,
2437
+ "kind": "struct_argument_to_variadic_candidate",
2438
+ "confidence": "medium",
2439
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
2440
+ "details": {
2441
+ "callee": "sprintf",
2442
+ "argument_index": 2,
2443
+ "fixed_parameter_count": 2,
2444
+ "argument_shape": "known_struct_or_union_variable",
2445
+ "api_source": "known_variadic_api"
2446
+ }
2447
+ },
2448
+ {
2449
+ "root_index": 0,
2450
+ "path": "oj/dump.c",
2451
+ "line": 782,
2452
+ "column": 44,
2453
+ "kind": "struct_argument_to_variadic_candidate",
2454
+ "confidence": "medium",
2455
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
2456
+ "details": {
2457
+ "callee": "sprintf",
2458
+ "argument_index": 3,
2459
+ "fixed_parameter_count": 2,
2460
+ "argument_shape": "known_struct_or_union_variable",
2461
+ "api_source": "known_variadic_api"
2462
+ }
2463
+ },
2464
+ {
2465
+ "root_index": 0,
2466
+ "path": "oj/dump.c",
2467
+ "line": 782,
2468
+ "column": 52,
2469
+ "kind": "struct_argument_to_variadic_candidate",
2470
+ "confidence": "medium",
2471
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
2472
+ "details": {
2473
+ "callee": "sprintf",
2474
+ "argument_index": 4,
2475
+ "fixed_parameter_count": 2,
2476
+ "argument_shape": "known_struct_or_union_variable",
2477
+ "api_source": "known_variadic_api"
2478
+ }
2479
+ },
2480
+ {
2481
+ "root_index": 0,
2482
+ "path": "oj/dump.c",
2483
+ "line": 782,
2484
+ "column": 60,
2485
+ "kind": "struct_argument_to_variadic_candidate",
2486
+ "confidence": "medium",
2487
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
2488
+ "details": {
2489
+ "callee": "sprintf",
2490
+ "argument_index": 5,
2491
+ "fixed_parameter_count": 2,
2492
+ "argument_shape": "known_struct_or_union_variable",
2493
+ "api_source": "known_variadic_api"
2494
+ }
2495
+ },
2496
+ {
2497
+ "root_index": 0,
2498
+ "path": "oj/dump.c",
2499
+ "line": 782,
2500
+ "column": 69,
2501
+ "kind": "struct_argument_to_variadic_candidate",
2502
+ "confidence": "medium",
2503
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
2504
+ "details": {
2505
+ "callee": "sprintf",
2506
+ "argument_index": 6,
2507
+ "fixed_parameter_count": 2,
2508
+ "argument_shape": "known_struct_or_union_variable",
2509
+ "api_source": "known_variadic_api"
2510
+ }
2511
+ },
2512
+ {
2513
+ "root_index": 0,
2514
+ "path": "oj/dump.c",
2515
+ "line": 782,
2516
+ "column": 77,
2517
+ "kind": "struct_argument_to_variadic_candidate",
2518
+ "confidence": "medium",
2519
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
2520
+ "details": {
2521
+ "callee": "sprintf",
2522
+ "argument_index": 7,
2523
+ "fixed_parameter_count": 2,
2524
+ "argument_shape": "known_struct_or_union_variable",
2525
+ "api_source": "known_variadic_api"
2526
+ }
2527
+ },
2528
+ {
2529
+ "root_index": 0,
2530
+ "path": "oj/dump.c",
2531
+ "line": 791,
2532
+ "column": 35,
2533
+ "kind": "struct_argument_to_variadic_candidate",
2534
+ "confidence": "medium",
2535
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec, tzsign, tzhour, tzmin)",
2536
+ "details": {
2537
+ "callee": "sprintf",
2538
+ "argument_index": 2,
2539
+ "fixed_parameter_count": 2,
2540
+ "argument_shape": "known_struct_or_union_variable",
2541
+ "api_source": "known_variadic_api"
2542
+ }
2543
+ },
2544
+ {
2545
+ "root_index": 0,
2546
+ "path": "oj/dump.c",
2547
+ "line": 791,
2548
+ "column": 44,
2549
+ "kind": "struct_argument_to_variadic_candidate",
2550
+ "confidence": "medium",
2551
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec, tzsign, tzhour, tzmin)",
2552
+ "details": {
2553
+ "callee": "sprintf",
2554
+ "argument_index": 3,
2555
+ "fixed_parameter_count": 2,
2556
+ "argument_shape": "known_struct_or_union_variable",
2557
+ "api_source": "known_variadic_api"
2558
+ }
2559
+ },
2560
+ {
2561
+ "root_index": 0,
2562
+ "path": "oj/dump.c",
2563
+ "line": 791,
2564
+ "column": 52,
2565
+ "kind": "struct_argument_to_variadic_candidate",
2566
+ "confidence": "medium",
2567
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec, tzsign, tzhour, tzmin)",
2568
+ "details": {
2569
+ "callee": "sprintf",
2570
+ "argument_index": 4,
2571
+ "fixed_parameter_count": 2,
2572
+ "argument_shape": "known_struct_or_union_variable",
2573
+ "api_source": "known_variadic_api"
2574
+ }
2575
+ },
2576
+ {
2577
+ "root_index": 0,
2578
+ "path": "oj/dump.c",
2579
+ "line": 791,
2580
+ "column": 60,
2581
+ "kind": "struct_argument_to_variadic_candidate",
2582
+ "confidence": "medium",
2583
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec, tzsign, tzhour, tzmin)",
2584
+ "details": {
2585
+ "callee": "sprintf",
2586
+ "argument_index": 5,
2587
+ "fixed_parameter_count": 2,
2588
+ "argument_shape": "known_struct_or_union_variable",
2589
+ "api_source": "known_variadic_api"
2590
+ }
2591
+ },
2592
+ {
2593
+ "root_index": 0,
2594
+ "path": "oj/dump.c",
2595
+ "line": 791,
2596
+ "column": 69,
2597
+ "kind": "struct_argument_to_variadic_candidate",
2598
+ "confidence": "medium",
2599
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec, tzsign, tzhour, tzmin)",
2600
+ "details": {
2601
+ "callee": "sprintf",
2602
+ "argument_index": 6,
2603
+ "fixed_parameter_count": 2,
2604
+ "argument_shape": "known_struct_or_union_variable",
2605
+ "api_source": "known_variadic_api"
2606
+ }
2607
+ },
2608
+ {
2609
+ "root_index": 0,
2610
+ "path": "oj/dump.c",
2611
+ "line": 791,
2612
+ "column": 77,
2613
+ "kind": "struct_argument_to_variadic_candidate",
2614
+ "confidence": "medium",
2615
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec, tzsign, tzhour, tzmin)",
2616
+ "details": {
2617
+ "callee": "sprintf",
2618
+ "argument_index": 7,
2619
+ "fixed_parameter_count": 2,
2620
+ "argument_shape": "known_struct_or_union_variable",
2621
+ "api_source": "known_variadic_api"
2622
+ }
2623
+ },
2624
+ {
2625
+ "root_index": 0,
2626
+ "path": "oj/rails.c",
2627
+ "line": 254,
2628
+ "column": 66,
2629
+ "kind": "struct_argument_to_variadic_candidate",
2630
+ "confidence": "medium",
2631
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2632
+ "details": {
2633
+ "callee": "sprintf",
2634
+ "argument_index": 2,
2635
+ "fixed_parameter_count": 2,
2636
+ "argument_shape": "known_struct_or_union_variable",
2637
+ "api_source": "known_variadic_api"
2638
+ }
2639
+ },
2640
+ {
2641
+ "root_index": 0,
2642
+ "path": "oj/rails.c",
2643
+ "line": 255,
2644
+ "column": 31,
2645
+ "kind": "struct_argument_to_variadic_candidate",
2646
+ "confidence": "medium",
2647
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2648
+ "details": {
2649
+ "callee": "sprintf",
2650
+ "argument_index": 3,
2651
+ "fixed_parameter_count": 2,
2652
+ "argument_shape": "known_struct_or_union_variable",
2653
+ "api_source": "known_variadic_api"
2654
+ }
2655
+ },
2656
+ {
2657
+ "root_index": 0,
2658
+ "path": "oj/rails.c",
2659
+ "line": 256,
2660
+ "column": 30,
2661
+ "kind": "struct_argument_to_variadic_candidate",
2662
+ "confidence": "medium",
2663
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2664
+ "details": {
2665
+ "callee": "sprintf",
2666
+ "argument_index": 4,
2667
+ "fixed_parameter_count": 2,
2668
+ "argument_shape": "known_struct_or_union_variable",
2669
+ "api_source": "known_variadic_api"
2670
+ }
2671
+ },
2672
+ {
2673
+ "root_index": 0,
2674
+ "path": "oj/rails.c",
2675
+ "line": 257,
2676
+ "column": 30,
2677
+ "kind": "struct_argument_to_variadic_candidate",
2678
+ "confidence": "medium",
2679
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2680
+ "details": {
2681
+ "callee": "sprintf",
2682
+ "argument_index": 5,
2683
+ "fixed_parameter_count": 2,
2684
+ "argument_shape": "known_struct_or_union_variable",
2685
+ "api_source": "known_variadic_api"
2686
+ }
2687
+ },
2688
+ {
2689
+ "root_index": 0,
2690
+ "path": "oj/rails.c",
2691
+ "line": 258,
2692
+ "column": 31,
2693
+ "kind": "struct_argument_to_variadic_candidate",
2694
+ "confidence": "medium",
2695
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2696
+ "details": {
2697
+ "callee": "sprintf",
2698
+ "argument_index": 6,
2699
+ "fixed_parameter_count": 2,
2700
+ "argument_shape": "known_struct_or_union_variable",
2701
+ "api_source": "known_variadic_api"
2702
+ }
2703
+ },
2704
+ {
2705
+ "root_index": 0,
2706
+ "path": "oj/rails.c",
2707
+ "line": 259,
2708
+ "column": 30,
2709
+ "kind": "struct_argument_to_variadic_candidate",
2710
+ "confidence": "medium",
2711
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2712
+ "details": {
2713
+ "callee": "sprintf",
2714
+ "argument_index": 7,
2715
+ "fixed_parameter_count": 2,
2716
+ "argument_shape": "known_struct_or_union_variable",
2717
+ "api_source": "known_variadic_api"
2718
+ }
2719
+ },
2720
+ {
2721
+ "root_index": 0,
2722
+ "path": "oj/rails.c",
2723
+ "line": 266,
2724
+ "column": 65,
2725
+ "kind": "struct_argument_to_variadic_candidate",
2726
+ "confidence": "medium",
2727
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2728
+ "details": {
2729
+ "callee": "sprintf",
2730
+ "argument_index": 2,
2731
+ "fixed_parameter_count": 2,
2732
+ "argument_shape": "known_struct_or_union_variable",
2733
+ "api_source": "known_variadic_api"
2734
+ }
2735
+ },
2736
+ {
2737
+ "root_index": 0,
2738
+ "path": "oj/rails.c",
2739
+ "line": 266,
2740
+ "column": 74,
2741
+ "kind": "struct_argument_to_variadic_candidate",
2742
+ "confidence": "medium",
2743
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2744
+ "details": {
2745
+ "callee": "sprintf",
2746
+ "argument_index": 3,
2747
+ "fixed_parameter_count": 2,
2748
+ "argument_shape": "known_struct_or_union_variable",
2749
+ "api_source": "known_variadic_api"
2750
+ }
2751
+ },
2752
+ {
2753
+ "root_index": 0,
2754
+ "path": "oj/rails.c",
2755
+ "line": 266,
2756
+ "column": 82,
2757
+ "kind": "struct_argument_to_variadic_candidate",
2758
+ "confidence": "medium",
2759
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2760
+ "details": {
2761
+ "callee": "sprintf",
2762
+ "argument_index": 4,
2763
+ "fixed_parameter_count": 2,
2764
+ "argument_shape": "known_struct_or_union_variable",
2765
+ "api_source": "known_variadic_api"
2766
+ }
2767
+ },
2768
+ {
2769
+ "root_index": 0,
2770
+ "path": "oj/rails.c",
2771
+ "line": 266,
2772
+ "column": 90,
2773
+ "kind": "struct_argument_to_variadic_candidate",
2774
+ "confidence": "medium",
2775
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2776
+ "details": {
2777
+ "callee": "sprintf",
2778
+ "argument_index": 5,
2779
+ "fixed_parameter_count": 2,
2780
+ "argument_shape": "known_struct_or_union_variable",
2781
+ "api_source": "known_variadic_api"
2782
+ }
2783
+ },
2784
+ {
2785
+ "root_index": 0,
2786
+ "path": "oj/rails.c",
2787
+ "line": 266,
2788
+ "column": 99,
2789
+ "kind": "struct_argument_to_variadic_candidate",
2790
+ "confidence": "medium",
2791
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2792
+ "details": {
2793
+ "callee": "sprintf",
2794
+ "argument_index": 6,
2795
+ "fixed_parameter_count": 2,
2796
+ "argument_shape": "known_struct_or_union_variable",
2797
+ "api_source": "known_variadic_api"
2798
+ }
2799
+ },
2800
+ {
2801
+ "root_index": 0,
2802
+ "path": "oj/rails.c",
2803
+ "line": 266,
2804
+ "column": 107,
2805
+ "kind": "struct_argument_to_variadic_candidate",
2806
+ "confidence": "medium",
2807
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec)",
2808
+ "details": {
2809
+ "callee": "sprintf",
2810
+ "argument_index": 7,
2811
+ "fixed_parameter_count": 2,
2812
+ "argument_shape": "known_struct_or_union_variable",
2813
+ "api_source": "known_variadic_api"
2814
+ }
2815
+ },
2816
+ {
2817
+ "root_index": 0,
2818
+ "path": "oj/rails.c",
2819
+ "line": 269,
2820
+ "column": 70,
2821
+ "kind": "struct_argument_to_variadic_candidate",
2822
+ "confidence": "medium",
2823
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2824
+ "details": {
2825
+ "callee": "sprintf",
2826
+ "argument_index": 2,
2827
+ "fixed_parameter_count": 2,
2828
+ "argument_shape": "known_struct_or_union_variable",
2829
+ "api_source": "known_variadic_api"
2830
+ }
2831
+ },
2832
+ {
2833
+ "root_index": 0,
2834
+ "path": "oj/rails.c",
2835
+ "line": 270,
2836
+ "column": 35,
2837
+ "kind": "struct_argument_to_variadic_candidate",
2838
+ "confidence": "medium",
2839
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2840
+ "details": {
2841
+ "callee": "sprintf",
2842
+ "argument_index": 3,
2843
+ "fixed_parameter_count": 2,
2844
+ "argument_shape": "known_struct_or_union_variable",
2845
+ "api_source": "known_variadic_api"
2846
+ }
2847
+ },
2848
+ {
2849
+ "root_index": 0,
2850
+ "path": "oj/rails.c",
2851
+ "line": 271,
2852
+ "column": 34,
2853
+ "kind": "struct_argument_to_variadic_candidate",
2854
+ "confidence": "medium",
2855
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2856
+ "details": {
2857
+ "callee": "sprintf",
2858
+ "argument_index": 4,
2859
+ "fixed_parameter_count": 2,
2860
+ "argument_shape": "known_struct_or_union_variable",
2861
+ "api_source": "known_variadic_api"
2862
+ }
2863
+ },
2864
+ {
2865
+ "root_index": 0,
2866
+ "path": "oj/rails.c",
2867
+ "line": 272,
2868
+ "column": 34,
2869
+ "kind": "struct_argument_to_variadic_candidate",
2870
+ "confidence": "medium",
2871
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2872
+ "details": {
2873
+ "callee": "sprintf",
2874
+ "argument_index": 5,
2875
+ "fixed_parameter_count": 2,
2876
+ "argument_shape": "known_struct_or_union_variable",
2877
+ "api_source": "known_variadic_api"
2878
+ }
2879
+ },
2880
+ {
2881
+ "root_index": 0,
2882
+ "path": "oj/rails.c",
2883
+ "line": 273,
2884
+ "column": 35,
2885
+ "kind": "struct_argument_to_variadic_candidate",
2886
+ "confidence": "medium",
2887
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2888
+ "details": {
2889
+ "callee": "sprintf",
2890
+ "argument_index": 6,
2891
+ "fixed_parameter_count": 2,
2892
+ "argument_shape": "known_struct_or_union_variable",
2893
+ "api_source": "known_variadic_api"
2894
+ }
2895
+ },
2896
+ {
2897
+ "root_index": 0,
2898
+ "path": "oj/rails.c",
2899
+ "line": 274,
2900
+ "column": 34,
2901
+ "kind": "struct_argument_to_variadic_candidate",
2902
+ "confidence": "medium",
2903
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, tzsign, tzhour, tzmin)",
2904
+ "details": {
2905
+ "callee": "sprintf",
2906
+ "argument_index": 7,
2907
+ "fixed_parameter_count": 2,
2908
+ "argument_shape": "known_struct_or_union_variable",
2909
+ "api_source": "known_variadic_api"
2910
+ }
2911
+ },
2912
+ {
2913
+ "root_index": 0,
2914
+ "path": "oj/rails.c",
2915
+ "line": 288,
2916
+ "column": 35,
2917
+ "kind": "struct_argument_to_variadic_candidate",
2918
+ "confidence": "medium",
2919
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec)",
2920
+ "details": {
2921
+ "callee": "sprintf",
2922
+ "argument_index": 2,
2923
+ "fixed_parameter_count": 2,
2924
+ "argument_shape": "known_struct_or_union_variable",
2925
+ "api_source": "known_variadic_api"
2926
+ }
2927
+ },
2928
+ {
2929
+ "root_index": 0,
2930
+ "path": "oj/rails.c",
2931
+ "line": 288,
2932
+ "column": 44,
2933
+ "kind": "struct_argument_to_variadic_candidate",
2934
+ "confidence": "medium",
2935
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec)",
2936
+ "details": {
2937
+ "callee": "sprintf",
2938
+ "argument_index": 3,
2939
+ "fixed_parameter_count": 2,
2940
+ "argument_shape": "known_struct_or_union_variable",
2941
+ "api_source": "known_variadic_api"
2942
+ }
2943
+ },
2944
+ {
2945
+ "root_index": 0,
2946
+ "path": "oj/rails.c",
2947
+ "line": 288,
2948
+ "column": 52,
2949
+ "kind": "struct_argument_to_variadic_candidate",
2950
+ "confidence": "medium",
2951
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec)",
2952
+ "details": {
2953
+ "callee": "sprintf",
2954
+ "argument_index": 4,
2955
+ "fixed_parameter_count": 2,
2956
+ "argument_shape": "known_struct_or_union_variable",
2957
+ "api_source": "known_variadic_api"
2958
+ }
2959
+ },
2960
+ {
2961
+ "root_index": 0,
2962
+ "path": "oj/rails.c",
2963
+ "line": 288,
2964
+ "column": 60,
2965
+ "kind": "struct_argument_to_variadic_candidate",
2966
+ "confidence": "medium",
2967
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec)",
2968
+ "details": {
2969
+ "callee": "sprintf",
2970
+ "argument_index": 5,
2971
+ "fixed_parameter_count": 2,
2972
+ "argument_shape": "known_struct_or_union_variable",
2973
+ "api_source": "known_variadic_api"
2974
+ }
2975
+ },
2976
+ {
2977
+ "root_index": 0,
2978
+ "path": "oj/rails.c",
2979
+ "line": 288,
2980
+ "column": 69,
2981
+ "kind": "struct_argument_to_variadic_candidate",
2982
+ "confidence": "medium",
2983
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec)",
2984
+ "details": {
2985
+ "callee": "sprintf",
2986
+ "argument_index": 6,
2987
+ "fixed_parameter_count": 2,
2988
+ "argument_shape": "known_struct_or_union_variable",
2989
+ "api_source": "known_variadic_api"
2990
+ }
2991
+ },
2992
+ {
2993
+ "root_index": 0,
2994
+ "path": "oj/rails.c",
2995
+ "line": 288,
2996
+ "column": 77,
2997
+ "kind": "struct_argument_to_variadic_candidate",
2998
+ "confidence": "medium",
2999
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec)",
3000
+ "details": {
3001
+ "callee": "sprintf",
3002
+ "argument_index": 7,
3003
+ "fixed_parameter_count": 2,
3004
+ "argument_shape": "known_struct_or_union_variable",
3005
+ "api_source": "known_variadic_api"
3006
+ }
3007
+ },
3008
+ {
3009
+ "root_index": 0,
3010
+ "path": "oj/rails.c",
3011
+ "line": 297,
3012
+ "column": 35,
3013
+ "kind": "struct_argument_to_variadic_candidate",
3014
+ "confidence": "medium",
3015
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec, tzsign, tzhour, tzmin)",
3016
+ "details": {
3017
+ "callee": "sprintf",
3018
+ "argument_index": 2,
3019
+ "fixed_parameter_count": 2,
3020
+ "argument_shape": "known_struct_or_union_variable",
3021
+ "api_source": "known_variadic_api"
3022
+ }
3023
+ },
3024
+ {
3025
+ "root_index": 0,
3026
+ "path": "oj/rails.c",
3027
+ "line": 297,
3028
+ "column": 44,
3029
+ "kind": "struct_argument_to_variadic_candidate",
3030
+ "confidence": "medium",
3031
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec, tzsign, tzhour, tzmin)",
3032
+ "details": {
3033
+ "callee": "sprintf",
3034
+ "argument_index": 3,
3035
+ "fixed_parameter_count": 2,
3036
+ "argument_shape": "known_struct_or_union_variable",
3037
+ "api_source": "known_variadic_api"
3038
+ }
3039
+ },
3040
+ {
3041
+ "root_index": 0,
3042
+ "path": "oj/rails.c",
3043
+ "line": 297,
3044
+ "column": 52,
3045
+ "kind": "struct_argument_to_variadic_candidate",
3046
+ "confidence": "medium",
3047
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec, tzsign, tzhour, tzmin)",
3048
+ "details": {
3049
+ "callee": "sprintf",
3050
+ "argument_index": 4,
3051
+ "fixed_parameter_count": 2,
3052
+ "argument_shape": "known_struct_or_union_variable",
3053
+ "api_source": "known_variadic_api"
3054
+ }
3055
+ },
3056
+ {
3057
+ "root_index": 0,
3058
+ "path": "oj/rails.c",
3059
+ "line": 297,
3060
+ "column": 60,
3061
+ "kind": "struct_argument_to_variadic_candidate",
3062
+ "confidence": "medium",
3063
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec, tzsign, tzhour, tzmin)",
3064
+ "details": {
3065
+ "callee": "sprintf",
3066
+ "argument_index": 5,
3067
+ "fixed_parameter_count": 2,
3068
+ "argument_shape": "known_struct_or_union_variable",
3069
+ "api_source": "known_variadic_api"
3070
+ }
3071
+ },
3072
+ {
3073
+ "root_index": 0,
3074
+ "path": "oj/rails.c",
3075
+ "line": 297,
3076
+ "column": 69,
3077
+ "kind": "struct_argument_to_variadic_candidate",
3078
+ "confidence": "medium",
3079
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec, tzsign, tzhour, tzmin)",
3080
+ "details": {
3081
+ "callee": "sprintf",
3082
+ "argument_index": 6,
3083
+ "fixed_parameter_count": 2,
3084
+ "argument_shape": "known_struct_or_union_variable",
3085
+ "api_source": "known_variadic_api"
3086
+ }
3087
+ },
3088
+ {
3089
+ "root_index": 0,
3090
+ "path": "oj/rails.c",
3091
+ "line": 297,
3092
+ "column": 77,
3093
+ "kind": "struct_argument_to_variadic_candidate",
3094
+ "confidence": "medium",
3095
+ "evidence": "sprintf(buf, format, ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, nsec, tzsign, tzhour, tzmin)",
3096
+ "details": {
3097
+ "callee": "sprintf",
3098
+ "argument_index": 7,
3099
+ "fixed_parameter_count": 2,
3100
+ "argument_shape": "known_struct_or_union_variable",
3101
+ "api_source": "known_variadic_api"
3102
+ }
3103
+ },
3104
+ {
3105
+ "root_index": 0,
3106
+ "path": "oj/wab.c",
3107
+ "line": 211,
3108
+ "column": 58,
3109
+ "kind": "struct_argument_to_variadic_candidate",
3110
+ "confidence": "medium",
3111
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
3112
+ "details": {
3113
+ "callee": "sprintf",
3114
+ "argument_index": 2,
3115
+ "fixed_parameter_count": 2,
3116
+ "argument_shape": "known_struct_or_union_variable",
3117
+ "api_source": "known_variadic_api"
3118
+ }
3119
+ },
3120
+ {
3121
+ "root_index": 0,
3122
+ "path": "oj/wab.c",
3123
+ "line": 212,
3124
+ "column": 27,
3125
+ "kind": "struct_argument_to_variadic_candidate",
3126
+ "confidence": "medium",
3127
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
3128
+ "details": {
3129
+ "callee": "sprintf",
3130
+ "argument_index": 3,
3131
+ "fixed_parameter_count": 2,
3132
+ "argument_shape": "known_struct_or_union_variable",
3133
+ "api_source": "known_variadic_api"
3134
+ }
3135
+ },
3136
+ {
3137
+ "root_index": 0,
3138
+ "path": "oj/wab.c",
3139
+ "line": 213,
3140
+ "column": 26,
3141
+ "kind": "struct_argument_to_variadic_candidate",
3142
+ "confidence": "medium",
3143
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
3144
+ "details": {
3145
+ "callee": "sprintf",
3146
+ "argument_index": 4,
3147
+ "fixed_parameter_count": 2,
3148
+ "argument_shape": "known_struct_or_union_variable",
3149
+ "api_source": "known_variadic_api"
3150
+ }
3151
+ },
3152
+ {
3153
+ "root_index": 0,
3154
+ "path": "oj/wab.c",
3155
+ "line": 214,
3156
+ "column": 26,
3157
+ "kind": "struct_argument_to_variadic_candidate",
3158
+ "confidence": "medium",
3159
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
3160
+ "details": {
3161
+ "callee": "sprintf",
3162
+ "argument_index": 5,
3163
+ "fixed_parameter_count": 2,
3164
+ "argument_shape": "known_struct_or_union_variable",
3165
+ "api_source": "known_variadic_api"
3166
+ }
3167
+ },
3168
+ {
3169
+ "root_index": 0,
3170
+ "path": "oj/wab.c",
3171
+ "line": 215,
3172
+ "column": 27,
3173
+ "kind": "struct_argument_to_variadic_candidate",
3174
+ "confidence": "medium",
3175
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
3176
+ "details": {
3177
+ "callee": "sprintf",
3178
+ "argument_index": 6,
3179
+ "fixed_parameter_count": 2,
3180
+ "argument_shape": "known_struct_or_union_variable",
3181
+ "api_source": "known_variadic_api"
3182
+ }
3183
+ },
3184
+ {
3185
+ "root_index": 0,
3186
+ "path": "oj/wab.c",
3187
+ "line": 216,
3188
+ "column": 26,
3189
+ "kind": "struct_argument_to_variadic_candidate",
3190
+ "confidence": "medium",
3191
+ "evidence": "sprintf(buf, , ti.year, ti.mon, ti.day, ti.hour, ti.min, ti.sec, (long)nsec)",
3192
+ "details": {
3193
+ "callee": "sprintf",
3194
+ "argument_index": 7,
3195
+ "fixed_parameter_count": 2,
3196
+ "argument_shape": "known_struct_or_union_variable",
3197
+ "api_source": "known_variadic_api"
3198
+ }
3199
+ }
3200
+ ],
3201
+ "errors": [],
3202
+ "not_proof": true,
3203
+ "not_acceptance_gate": true
3204
+ },
3205
+ "classification": {
3206
+ "manual": "pending",
3207
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
3208
+ "reviewer": null,
3209
+ "reviewed_at": null,
3210
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
3211
+ },
3212
+ "verification": {
3213
+ "recorded_in_data_verified_gems": false,
3214
+ "record_path": null,
3215
+ "control": "not-run-by-this-scan",
3216
+ "rubycc": "not-run-by-this-scan",
3217
+ "extension_load": "not-run-by-this-scan",
3218
+ "upstream_suite": "not-run-by-this-scan"
3219
+ }
3220
+ },
3221
+ {
3222
+ "name": "sqlite3",
3223
+ "version": "2.9.5",
3224
+ "r10_profile": "sqlite3-system-libraries",
3225
+ "r10_extconf_args": [
3226
+ "--enable-system-libraries"
3227
+ ],
3228
+ "machine_gate": {
3229
+ "status": "ok",
3230
+ "ext_c_files": 6,
3231
+ "ext_h_files": 7
3232
+ },
3233
+ "provenance": {
3234
+ "gem_url": "https://rubygems.org/downloads/sqlite3-2.9.5.gem",
3235
+ "gem_sha256": "04572973a3f943ad50a8adfffc8dd752a5f06e4c3db2026f71838fed8a982606",
3236
+ "source_tarball_sha256": null,
3237
+ "cache_relative_path": "sqlite3-2.9.5.gem",
3238
+ "unpacked_relative_path": "unpacked/sqlite3-2.9.5"
3239
+ },
3240
+ "generated_source": {
3241
+ "status": "not-reviewed",
3242
+ "commands": null,
3243
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
3244
+ },
3245
+ "scanner": {
3246
+ "files_scanned": 13,
3247
+ "summary": {
3248
+ "total_findings": 0,
3249
+ "by_kind": {}
3250
+ },
3251
+ "findings": [],
3252
+ "errors": [],
3253
+ "not_proof": true,
3254
+ "not_acceptance_gate": true
3255
+ },
3256
+ "classification": {
3257
+ "manual": "pending",
3258
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
3259
+ "reviewer": null,
3260
+ "reviewed_at": null,
3261
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
3262
+ },
3263
+ "verification": {
3264
+ "recorded_in_data_verified_gems": true,
3265
+ "record_path": "data/verified_gems.json",
3266
+ "control": "not-run-by-this-scan",
3267
+ "rubycc": "not-run-by-this-scan",
3268
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
3269
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
3270
+ }
3271
+ },
3272
+ {
3273
+ "name": "nio4r",
3274
+ "version": "2.7.5",
3275
+ "r10_profile": "default-source",
3276
+ "r10_extconf_args": [],
3277
+ "machine_gate": {
3278
+ "status": "ok",
3279
+ "ext_c_files": 13,
3280
+ "ext_h_files": 5
3281
+ },
3282
+ "provenance": {
3283
+ "gem_url": "https://rubygems.org/downloads/nio4r-2.7.5.gem",
3284
+ "gem_sha256": "6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1",
3285
+ "source_tarball_sha256": null,
3286
+ "cache_relative_path": "nio4r-2.7.5.gem",
3287
+ "unpacked_relative_path": "unpacked/nio4r-2.7.5"
3288
+ },
3289
+ "generated_source": {
3290
+ "status": "not-reviewed",
3291
+ "commands": null,
3292
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
3293
+ },
3294
+ "scanner": {
3295
+ "files_scanned": 18,
3296
+ "summary": {
3297
+ "total_findings": 0,
3298
+ "by_kind": {}
3299
+ },
3300
+ "findings": [],
3301
+ "errors": [],
3302
+ "not_proof": true,
3303
+ "not_acceptance_gate": true
3304
+ },
3305
+ "classification": {
3306
+ "manual": "pending",
3307
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
3308
+ "reviewer": null,
3309
+ "reviewed_at": null,
3310
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
3311
+ },
3312
+ "verification": {
3313
+ "recorded_in_data_verified_gems": true,
3314
+ "record_path": "data/verified_gems.json",
3315
+ "control": "not-run-by-this-scan",
3316
+ "rubycc": "not-run-by-this-scan",
3317
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
3318
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
3319
+ }
3320
+ },
3321
+ {
3322
+ "name": "pg",
3323
+ "version": "1.6.3",
3324
+ "r10_profile": "pg-native-source",
3325
+ "r10_extconf_args": [],
3326
+ "machine_gate": {
3327
+ "status": "ok",
3328
+ "ext_c_files": 22,
3329
+ "ext_h_files": 3
3330
+ },
3331
+ "provenance": {
3332
+ "gem_url": "https://rubygems.org/downloads/pg-1.6.3.gem",
3333
+ "gem_sha256": "1388d0563e13d2758c1089e35e973a3249e955c659592d10e5b77c468f628a99",
3334
+ "source_tarball_sha256": null,
3335
+ "cache_relative_path": "pg-1.6.3.gem",
3336
+ "unpacked_relative_path": "unpacked/pg-1.6.3"
3337
+ },
3338
+ "generated_source": {
3339
+ "status": "not-reviewed",
3340
+ "commands": null,
3341
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
3342
+ },
3343
+ "scanner": {
3344
+ "files_scanned": 25,
3345
+ "summary": {
3346
+ "total_findings": 0,
3347
+ "by_kind": {}
3348
+ },
3349
+ "findings": [],
3350
+ "errors": [],
3351
+ "not_proof": true,
3352
+ "not_acceptance_gate": true
3353
+ },
3354
+ "classification": {
3355
+ "manual": "pending",
3356
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
3357
+ "reviewer": null,
3358
+ "reviewed_at": null,
3359
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
3360
+ },
3361
+ "verification": {
3362
+ "recorded_in_data_verified_gems": true,
3363
+ "record_path": "data/verified_gems.json",
3364
+ "control": "not-run-by-this-scan",
3365
+ "rubycc": "not-run-by-this-scan",
3366
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
3367
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
3368
+ }
3369
+ },
3370
+ {
3371
+ "name": "mysql2",
3372
+ "version": "0.5.7",
3373
+ "r10_profile": "default-source",
3374
+ "r10_extconf_args": [],
3375
+ "machine_gate": {
3376
+ "status": "ok",
3377
+ "ext_c_files": 5,
3378
+ "ext_h_files": 8
3379
+ },
3380
+ "provenance": {
3381
+ "gem_url": "https://rubygems.org/downloads/mysql2-0.5.7.gem",
3382
+ "gem_sha256": "ba09ede515a0ae8a7192040a1b778c0fb0f025fa5877e9be895cd325fa5e9d7b",
3383
+ "source_tarball_sha256": null,
3384
+ "cache_relative_path": "mysql2-0.5.7.gem",
3385
+ "unpacked_relative_path": "unpacked/mysql2-0.5.7"
3386
+ },
3387
+ "generated_source": {
3388
+ "status": "not-reviewed",
3389
+ "commands": null,
3390
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
3391
+ },
3392
+ "scanner": {
3393
+ "files_scanned": 13,
3394
+ "summary": {
3395
+ "total_findings": 0,
3396
+ "by_kind": {}
3397
+ },
3398
+ "findings": [],
3399
+ "errors": [],
3400
+ "not_proof": true,
3401
+ "not_acceptance_gate": true
3402
+ },
3403
+ "classification": {
3404
+ "manual": "pending",
3405
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
3406
+ "reviewer": null,
3407
+ "reviewed_at": null,
3408
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
3409
+ },
3410
+ "verification": {
3411
+ "recorded_in_data_verified_gems": true,
3412
+ "record_path": "data/verified_gems.json",
3413
+ "control": "not-run-by-this-scan",
3414
+ "rubycc": "not-run-by-this-scan",
3415
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
3416
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
3417
+ }
3418
+ },
3419
+ {
3420
+ "name": "http_parser.rb",
3421
+ "version": "0.8.1",
3422
+ "r10_profile": "default-source",
3423
+ "r10_extconf_args": [],
3424
+ "machine_gate": {
3425
+ "status": "ok",
3426
+ "ext_c_files": 8,
3427
+ "ext_h_files": 3
3428
+ },
3429
+ "provenance": {
3430
+ "gem_url": "https://rubygems.org/downloads/http_parser.rb-0.8.1.gem",
3431
+ "gem_sha256": "9ae8df145b39aa5398b2f90090d651c67bd8e2ebfe4507c966579f641e11097a",
3432
+ "source_tarball_sha256": null,
3433
+ "cache_relative_path": "http_parser.rb-0.8.1.gem",
3434
+ "unpacked_relative_path": "unpacked/http_parser.rb-0.8.1"
3435
+ },
3436
+ "generated_source": {
3437
+ "status": "not-reviewed",
3438
+ "commands": null,
3439
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
3440
+ },
3441
+ "scanner": {
3442
+ "files_scanned": 11,
3443
+ "summary": {
3444
+ "total_findings": 23,
3445
+ "by_kind": {
3446
+ "struct_argument_to_variadic_candidate": 19,
3447
+ "va_arg_struct_or_union": 4
3448
+ }
3449
+ },
3450
+ "findings": [
3451
+ {
3452
+ "root_index": 0,
3453
+ "path": "ruby_http_parser/vendor/http-parser-java/test.c",
3454
+ "line": 1988,
3455
+ "column": 35,
3456
+ "kind": "va_arg_struct_or_union",
3457
+ "confidence": "high",
3458
+ "evidence": "va_arg(ap, struct message *)",
3459
+ "details": {
3460
+ "type": "struct message *",
3461
+ "type_form": "struct_or_union_specifier",
3462
+ "builtin": false
3463
+ }
3464
+ },
3465
+ {
3466
+ "root_index": 0,
3467
+ "path": "ruby_http_parser/vendor/http-parser-java/test.c",
3468
+ "line": 2012,
3469
+ "column": 35,
3470
+ "kind": "va_arg_struct_or_union",
3471
+ "confidence": "high",
3472
+ "evidence": "va_arg(ap, struct message *)",
3473
+ "details": {
3474
+ "type": "struct message *",
3475
+ "type_form": "struct_or_union_specifier",
3476
+ "builtin": false
3477
+ }
3478
+ },
3479
+ {
3480
+ "root_index": 0,
3481
+ "path": "ruby_http_parser/vendor/http-parser-java/test.c",
3482
+ "line": 2590,
3483
+ "column": 42,
3484
+ "kind": "struct_argument_to_variadic_candidate",
3485
+ "confidence": "medium",
3486
+ "evidence": "printf( , u->field_set, u->port)",
3487
+ "details": {
3488
+ "callee": "printf",
3489
+ "argument_index": 1,
3490
+ "fixed_parameter_count": 1,
3491
+ "argument_shape": "known_struct_or_union_variable",
3492
+ "api_source": "known_variadic_api"
3493
+ }
3494
+ },
3495
+ {
3496
+ "root_index": 0,
3497
+ "path": "ruby_http_parser/vendor/http-parser-java/test.c",
3498
+ "line": 2590,
3499
+ "column": 56,
3500
+ "kind": "struct_argument_to_variadic_candidate",
3501
+ "confidence": "medium",
3502
+ "evidence": "printf( , u->field_set, u->port)",
3503
+ "details": {
3504
+ "callee": "printf",
3505
+ "argument_index": 2,
3506
+ "fixed_parameter_count": 1,
3507
+ "argument_shape": "known_struct_or_union_variable",
3508
+ "api_source": "known_variadic_api"
3509
+ }
3510
+ },
3511
+ {
3512
+ "root_index": 0,
3513
+ "path": "ruby_http_parser/vendor/http-parser-java/test.c",
3514
+ "line": 2598,
3515
+ "column": 14,
3516
+ "kind": "struct_argument_to_variadic_candidate",
3517
+ "confidence": "medium",
3518
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3519
+ "details": {
3520
+ "callee": "printf",
3521
+ "argument_index": 2,
3522
+ "fixed_parameter_count": 1,
3523
+ "argument_shape": "known_struct_or_union_variable",
3524
+ "api_source": "known_variadic_api"
3525
+ }
3526
+ },
3527
+ {
3528
+ "root_index": 0,
3529
+ "path": "ruby_http_parser/vendor/http-parser-java/test.c",
3530
+ "line": 2599,
3531
+ "column": 33,
3532
+ "kind": "struct_argument_to_variadic_candidate",
3533
+ "confidence": "medium",
3534
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3535
+ "details": {
3536
+ "callee": "printf",
3537
+ "argument_index": 3,
3538
+ "fixed_parameter_count": 1,
3539
+ "argument_shape": "known_struct_or_union_variable",
3540
+ "api_source": "known_variadic_api"
3541
+ }
3542
+ },
3543
+ {
3544
+ "root_index": 0,
3545
+ "path": "ruby_http_parser/vendor/http-parser-java/test.c",
3546
+ "line": 2600,
3547
+ "column": 33,
3548
+ "kind": "struct_argument_to_variadic_candidate",
3549
+ "confidence": "medium",
3550
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3551
+ "details": {
3552
+ "callee": "printf",
3553
+ "argument_index": 4,
3554
+ "fixed_parameter_count": 1,
3555
+ "argument_shape": "known_struct_or_union_variable",
3556
+ "api_source": "known_variadic_api"
3557
+ }
3558
+ },
3559
+ {
3560
+ "root_index": 0,
3561
+ "path": "ruby_http_parser/vendor/http-parser-java/test.c",
3562
+ "line": 2601,
3563
+ "column": 33,
3564
+ "kind": "struct_argument_to_variadic_candidate",
3565
+ "confidence": "medium",
3566
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3567
+ "details": {
3568
+ "callee": "printf",
3569
+ "argument_index": 5,
3570
+ "fixed_parameter_count": 1,
3571
+ "argument_shape": "known_struct_or_union_variable",
3572
+ "api_source": "known_variadic_api"
3573
+ }
3574
+ },
3575
+ {
3576
+ "root_index": 0,
3577
+ "path": "ruby_http_parser/vendor/http-parser/contrib/url_parser.c",
3578
+ "line": 10,
3579
+ "column": 42,
3580
+ "kind": "struct_argument_to_variadic_candidate",
3581
+ "confidence": "medium",
3582
+ "evidence": "printf( , u->field_set, u->port)",
3583
+ "details": {
3584
+ "callee": "printf",
3585
+ "argument_index": 1,
3586
+ "fixed_parameter_count": 1,
3587
+ "argument_shape": "known_struct_or_union_variable",
3588
+ "api_source": "known_variadic_api"
3589
+ }
3590
+ },
3591
+ {
3592
+ "root_index": 0,
3593
+ "path": "ruby_http_parser/vendor/http-parser/contrib/url_parser.c",
3594
+ "line": 10,
3595
+ "column": 56,
3596
+ "kind": "struct_argument_to_variadic_candidate",
3597
+ "confidence": "medium",
3598
+ "evidence": "printf( , u->field_set, u->port)",
3599
+ "details": {
3600
+ "callee": "printf",
3601
+ "argument_index": 2,
3602
+ "fixed_parameter_count": 1,
3603
+ "argument_shape": "known_struct_or_union_variable",
3604
+ "api_source": "known_variadic_api"
3605
+ }
3606
+ },
3607
+ {
3608
+ "root_index": 0,
3609
+ "path": "ruby_http_parser/vendor/http-parser/contrib/url_parser.c",
3610
+ "line": 18,
3611
+ "column": 14,
3612
+ "kind": "struct_argument_to_variadic_candidate",
3613
+ "confidence": "medium",
3614
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3615
+ "details": {
3616
+ "callee": "printf",
3617
+ "argument_index": 2,
3618
+ "fixed_parameter_count": 1,
3619
+ "argument_shape": "known_struct_or_union_variable",
3620
+ "api_source": "known_variadic_api"
3621
+ }
3622
+ },
3623
+ {
3624
+ "root_index": 0,
3625
+ "path": "ruby_http_parser/vendor/http-parser/contrib/url_parser.c",
3626
+ "line": 19,
3627
+ "column": 33,
3628
+ "kind": "struct_argument_to_variadic_candidate",
3629
+ "confidence": "medium",
3630
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3631
+ "details": {
3632
+ "callee": "printf",
3633
+ "argument_index": 3,
3634
+ "fixed_parameter_count": 1,
3635
+ "argument_shape": "known_struct_or_union_variable",
3636
+ "api_source": "known_variadic_api"
3637
+ }
3638
+ },
3639
+ {
3640
+ "root_index": 0,
3641
+ "path": "ruby_http_parser/vendor/http-parser/contrib/url_parser.c",
3642
+ "line": 20,
3643
+ "column": 33,
3644
+ "kind": "struct_argument_to_variadic_candidate",
3645
+ "confidence": "medium",
3646
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3647
+ "details": {
3648
+ "callee": "printf",
3649
+ "argument_index": 4,
3650
+ "fixed_parameter_count": 1,
3651
+ "argument_shape": "known_struct_or_union_variable",
3652
+ "api_source": "known_variadic_api"
3653
+ }
3654
+ },
3655
+ {
3656
+ "root_index": 0,
3657
+ "path": "ruby_http_parser/vendor/http-parser/contrib/url_parser.c",
3658
+ "line": 21,
3659
+ "column": 33,
3660
+ "kind": "struct_argument_to_variadic_candidate",
3661
+ "confidence": "medium",
3662
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3663
+ "details": {
3664
+ "callee": "printf",
3665
+ "argument_index": 5,
3666
+ "fixed_parameter_count": 1,
3667
+ "argument_shape": "known_struct_or_union_variable",
3668
+ "api_source": "known_variadic_api"
3669
+ }
3670
+ },
3671
+ {
3672
+ "root_index": 0,
3673
+ "path": "ruby_http_parser/vendor/http-parser/test.c",
3674
+ "line": 2668,
3675
+ "column": 35,
3676
+ "kind": "va_arg_struct_or_union",
3677
+ "confidence": "high",
3678
+ "evidence": "va_arg(ap, struct message *)",
3679
+ "details": {
3680
+ "type": "struct message *",
3681
+ "type_form": "struct_or_union_specifier",
3682
+ "builtin": false
3683
+ }
3684
+ },
3685
+ {
3686
+ "root_index": 0,
3687
+ "path": "ruby_http_parser/vendor/http-parser/test.c",
3688
+ "line": 2692,
3689
+ "column": 35,
3690
+ "kind": "va_arg_struct_or_union",
3691
+ "confidence": "high",
3692
+ "evidence": "va_arg(ap, struct message *)",
3693
+ "details": {
3694
+ "type": "struct message *",
3695
+ "type_form": "struct_or_union_specifier",
3696
+ "builtin": false
3697
+ }
3698
+ },
3699
+ {
3700
+ "root_index": 0,
3701
+ "path": "ruby_http_parser/vendor/http-parser/test.c",
3702
+ "line": 3322,
3703
+ "column": 42,
3704
+ "kind": "struct_argument_to_variadic_candidate",
3705
+ "confidence": "medium",
3706
+ "evidence": "printf( , u->field_set, u->port)",
3707
+ "details": {
3708
+ "callee": "printf",
3709
+ "argument_index": 1,
3710
+ "fixed_parameter_count": 1,
3711
+ "argument_shape": "known_struct_or_union_variable",
3712
+ "api_source": "known_variadic_api"
3713
+ }
3714
+ },
3715
+ {
3716
+ "root_index": 0,
3717
+ "path": "ruby_http_parser/vendor/http-parser/test.c",
3718
+ "line": 3322,
3719
+ "column": 56,
3720
+ "kind": "struct_argument_to_variadic_candidate",
3721
+ "confidence": "medium",
3722
+ "evidence": "printf( , u->field_set, u->port)",
3723
+ "details": {
3724
+ "callee": "printf",
3725
+ "argument_index": 2,
3726
+ "fixed_parameter_count": 1,
3727
+ "argument_shape": "known_struct_or_union_variable",
3728
+ "api_source": "known_variadic_api"
3729
+ }
3730
+ },
3731
+ {
3732
+ "root_index": 0,
3733
+ "path": "ruby_http_parser/vendor/http-parser/test.c",
3734
+ "line": 3330,
3735
+ "column": 14,
3736
+ "kind": "struct_argument_to_variadic_candidate",
3737
+ "confidence": "medium",
3738
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3739
+ "details": {
3740
+ "callee": "printf",
3741
+ "argument_index": 2,
3742
+ "fixed_parameter_count": 1,
3743
+ "argument_shape": "known_struct_or_union_variable",
3744
+ "api_source": "known_variadic_api"
3745
+ }
3746
+ },
3747
+ {
3748
+ "root_index": 0,
3749
+ "path": "ruby_http_parser/vendor/http-parser/test.c",
3750
+ "line": 3331,
3751
+ "column": 33,
3752
+ "kind": "struct_argument_to_variadic_candidate",
3753
+ "confidence": "medium",
3754
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3755
+ "details": {
3756
+ "callee": "printf",
3757
+ "argument_index": 3,
3758
+ "fixed_parameter_count": 1,
3759
+ "argument_shape": "known_struct_or_union_variable",
3760
+ "api_source": "known_variadic_api"
3761
+ }
3762
+ },
3763
+ {
3764
+ "root_index": 0,
3765
+ "path": "ruby_http_parser/vendor/http-parser/test.c",
3766
+ "line": 3332,
3767
+ "column": 33,
3768
+ "kind": "struct_argument_to_variadic_candidate",
3769
+ "confidence": "medium",
3770
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3771
+ "details": {
3772
+ "callee": "printf",
3773
+ "argument_index": 4,
3774
+ "fixed_parameter_count": 1,
3775
+ "argument_shape": "known_struct_or_union_variable",
3776
+ "api_source": "known_variadic_api"
3777
+ }
3778
+ },
3779
+ {
3780
+ "root_index": 0,
3781
+ "path": "ruby_http_parser/vendor/http-parser/test.c",
3782
+ "line": 3333,
3783
+ "column": 33,
3784
+ "kind": "struct_argument_to_variadic_candidate",
3785
+ "confidence": "medium",
3786
+ "evidence": "printf( , i, u->field_data[i].off, u->field_data[i].len, u->field_data[i].len, url + u->field_data[i].off)",
3787
+ "details": {
3788
+ "callee": "printf",
3789
+ "argument_index": 5,
3790
+ "fixed_parameter_count": 1,
3791
+ "argument_shape": "known_struct_or_union_variable",
3792
+ "api_source": "known_variadic_api"
3793
+ }
3794
+ },
3795
+ {
3796
+ "root_index": 0,
3797
+ "path": "ruby_http_parser/vendor/http-parser/test.c",
3798
+ "line": 3689,
3799
+ "column": 73,
3800
+ "kind": "struct_argument_to_variadic_candidate",
3801
+ "confidence": "medium",
3802
+ "evidence": "fprintf(stderr, , u.port)",
3803
+ "details": {
3804
+ "callee": "fprintf",
3805
+ "argument_index": 2,
3806
+ "fixed_parameter_count": 2,
3807
+ "argument_shape": "known_struct_or_union_variable",
3808
+ "api_source": "known_variadic_api"
3809
+ }
3810
+ }
3811
+ ],
3812
+ "errors": [],
3813
+ "not_proof": true,
3814
+ "not_acceptance_gate": true
3815
+ },
3816
+ "classification": {
3817
+ "manual": "pending",
3818
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
3819
+ "reviewer": null,
3820
+ "reviewed_at": null,
3821
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
3822
+ },
3823
+ "verification": {
3824
+ "recorded_in_data_verified_gems": true,
3825
+ "record_path": "data/verified_gems.json",
3826
+ "control": "not-run-by-this-scan",
3827
+ "rubycc": "not-run-by-this-scan",
3828
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
3829
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
3830
+ }
3831
+ },
3832
+ {
3833
+ "name": "stackprof",
3834
+ "version": "0.2.28",
3835
+ "r10_profile": "default-source",
3836
+ "r10_extconf_args": [],
3837
+ "machine_gate": {
3838
+ "status": "ok",
3839
+ "ext_c_files": 1,
3840
+ "ext_h_files": 0
3841
+ },
3842
+ "provenance": {
3843
+ "gem_url": "https://rubygems.org/downloads/stackprof-0.2.28.gem",
3844
+ "gem_sha256": "4ec2ace02f386012b40ca20ef80c030ad711831f59511da12e83b34efb0f9a04",
3845
+ "source_tarball_sha256": null,
3846
+ "cache_relative_path": "stackprof-0.2.28.gem",
3847
+ "unpacked_relative_path": "unpacked/stackprof-0.2.28"
3848
+ },
3849
+ "generated_source": {
3850
+ "status": "not-reviewed",
3851
+ "commands": null,
3852
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
3853
+ },
3854
+ "scanner": {
3855
+ "files_scanned": 1,
3856
+ "summary": {
3857
+ "total_findings": 0,
3858
+ "by_kind": {}
3859
+ },
3860
+ "findings": [],
3861
+ "errors": [],
3862
+ "not_proof": true,
3863
+ "not_acceptance_gate": true
3864
+ },
3865
+ "classification": {
3866
+ "manual": "pending",
3867
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
3868
+ "reviewer": null,
3869
+ "reviewed_at": null,
3870
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
3871
+ },
3872
+ "verification": {
3873
+ "recorded_in_data_verified_gems": true,
3874
+ "record_path": "data/verified_gems.json",
3875
+ "control": "not-run-by-this-scan",
3876
+ "rubycc": "not-run-by-this-scan",
3877
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
3878
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
3879
+ }
3880
+ },
3881
+ {
3882
+ "name": "yajl-ruby",
3883
+ "version": "1.4.3",
3884
+ "r10_profile": "default-source",
3885
+ "r10_extconf_args": [],
3886
+ "machine_gate": {
3887
+ "status": "ok",
3888
+ "ext_c_files": 9,
3889
+ "ext_h_files": 11
3890
+ },
3891
+ "provenance": {
3892
+ "gem_url": "https://rubygems.org/downloads/yajl-ruby-1.4.3.gem",
3893
+ "gem_sha256": "8c974d9c11ae07b0a3b6d26efea8407269b02e4138118fbe3ef0d2ec9724d1d2",
3894
+ "source_tarball_sha256": null,
3895
+ "cache_relative_path": "yajl-ruby-1.4.3.gem",
3896
+ "unpacked_relative_path": "unpacked/yajl-ruby-1.4.3"
3897
+ },
3898
+ "generated_source": {
3899
+ "status": "not-reviewed",
3900
+ "commands": null,
3901
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
3902
+ },
3903
+ "scanner": {
3904
+ "files_scanned": 20,
3905
+ "summary": {
3906
+ "total_findings": 0,
3907
+ "by_kind": {}
3908
+ },
3909
+ "findings": [],
3910
+ "errors": [],
3911
+ "not_proof": true,
3912
+ "not_acceptance_gate": true
3913
+ },
3914
+ "classification": {
3915
+ "manual": "pending",
3916
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
3917
+ "reviewer": null,
3918
+ "reviewed_at": null,
3919
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
3920
+ },
3921
+ "verification": {
3922
+ "recorded_in_data_verified_gems": true,
3923
+ "record_path": "data/verified_gems.json",
3924
+ "control": "not-run-by-this-scan",
3925
+ "rubycc": "not-run-by-this-scan",
3926
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
3927
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
3928
+ }
3929
+ },
3930
+ {
3931
+ "name": "nkf",
3932
+ "version": "0.3.0",
3933
+ "r10_profile": "default-source",
3934
+ "r10_extconf_args": [],
3935
+ "machine_gate": {
3936
+ "status": "ok",
3937
+ "ext_c_files": 3,
3938
+ "ext_h_files": 3
3939
+ },
3940
+ "provenance": {
3941
+ "gem_url": "https://rubygems.org/downloads/nkf-0.3.0.gem",
3942
+ "gem_sha256": "357a8dbeba38b727b75930f665146546076a394a1c243faf634ff176e3588895",
3943
+ "source_tarball_sha256": null,
3944
+ "cache_relative_path": "nkf-0.3.0.gem",
3945
+ "unpacked_relative_path": "unpacked/nkf-0.3.0"
3946
+ },
3947
+ "generated_source": {
3948
+ "status": "not-reviewed",
3949
+ "commands": null,
3950
+ "note": "R10-3 manual review must inspect extconf/Rake/generated translation units."
3951
+ },
3952
+ "scanner": {
3953
+ "files_scanned": 6,
3954
+ "summary": {
3955
+ "total_findings": 2,
3956
+ "by_kind": {
3957
+ "struct_argument_to_variadic_candidate": 2
3958
+ }
3959
+ },
3960
+ "findings": [
3961
+ {
3962
+ "root_index": 0,
3963
+ "path": "nkf/nkf-utf8/nkf.c",
3964
+ "line": 1169,
3965
+ "column": 22,
3966
+ "kind": "struct_argument_to_variadic_candidate",
3967
+ "confidence": "medium",
3968
+ "evidence": "fprintf(HELP_OUTPUT, #ifdef DEFAULT_CODE_LOCALE , nkf_enc_name(nkf_default_encoding()) #elif defined(DEFAULT_ENCIDX) , nkf_enc_name(nkf_default_encoding()) #else #endif )",
3969
+ "details": {
3970
+ "callee": "fprintf",
3971
+ "argument_index": 3,
3972
+ "fixed_parameter_count": 2,
3973
+ "argument_shape": "known_struct_or_union_variable",
3974
+ "api_source": "known_variadic_api"
3975
+ }
3976
+ },
3977
+ {
3978
+ "root_index": 0,
3979
+ "path": "nkf/nkf-utf8/nkf.c",
3980
+ "line": 6794,
3981
+ "column": 53,
3982
+ "kind": "struct_argument_to_variadic_candidate",
3983
+ "confidence": "medium",
3984
+ "evidence": "fprintf(stderr, , long_option[i].name)",
3985
+ "details": {
3986
+ "callee": "fprintf",
3987
+ "argument_index": 2,
3988
+ "fixed_parameter_count": 2,
3989
+ "argument_shape": "known_struct_or_union_variable",
3990
+ "api_source": "known_variadic_api"
3991
+ }
3992
+ }
3993
+ ],
3994
+ "errors": [],
3995
+ "not_proof": true,
3996
+ "not_acceptance_gate": true
3997
+ },
3998
+ "classification": {
3999
+ "manual": "pending",
4000
+ "pending_reason": "R10-3 manual review is not complete; scanner output is a candidate list only.",
4001
+ "reviewer": null,
4002
+ "reviewed_at": null,
4003
+ "next_action": "Review selected build path, macros/generated source, and each scanner candidate."
4004
+ },
4005
+ "verification": {
4006
+ "recorded_in_data_verified_gems": true,
4007
+ "record_path": "data/verified_gems.json",
4008
+ "control": "not-run-by-this-scan",
4009
+ "rubycc": "not-run-by-this-scan",
4010
+ "extension_load": "recorded in data/verified_gems.json; not re-run",
4011
+ "upstream_suite": "recorded in data/verified_gems.json; not re-run"
4012
+ }
4013
+ }
4014
+ ],
4015
+ "excluded": [
4016
+ {
4017
+ "name": "fcntl",
4018
+ "version": "1.3.0",
4019
+ "r10_profile": "default-source",
4020
+ "r10_extconf_args": [],
4021
+ "status": "excluded",
4022
+ "reason": "upstream ships no test suite — R10's \"gem's own tests passed\" evidence (verification level (d)) is impossible to obtain (docs/OUT-OF-SCOPE-GEMS.md basis D)",
4023
+ "provenance": {
4024
+ "gem_url": "https://rubygems.org/downloads/fcntl-1.3.0.gem",
4025
+ "gem_sha256": "6b8d5f1496d9990a9172756cf128ba8b3cfbaccd54da7050ec6d5e7f3b167e41",
4026
+ "cache_relative_path": "fcntl-1.3.0.gem"
4027
+ }
4028
+ },
4029
+ {
4030
+ "name": "byebug",
4031
+ "version": "13.0.0",
4032
+ "r10_profile": "default-source",
4033
+ "r10_extconf_args": [],
4034
+ "status": "excluded",
4035
+ "reason": "upstream suite does not pass with the reference compiler either (measured with tools/verify_gem_tests.rb --control) — no compiler can earn R10's verification level (d) here",
4036
+ "provenance": {
4037
+ "gem_url": "https://rubygems.org/downloads/byebug-13.0.0.gem",
4038
+ "gem_sha256": "d2263efe751941ca520fa29744b71972d39cbc41839496706f5d9b22e92ae05d",
4039
+ "cache_relative_path": "byebug-13.0.0.gem"
4040
+ }
4041
+ },
4042
+ {
4043
+ "name": "thin",
4044
+ "version": "2.0.1",
4045
+ "r10_profile": "default-source",
4046
+ "r10_extconf_args": [],
4047
+ "status": "excluded",
4048
+ "reason": "`gem install` requires eventmachine (C++ extension — docs/OUT-OF-SCOPE-GEMS.md basis A), which R10 already excludes — this gem's own sources pass the machine gate, but the install cannot complete without building an out-of-scope extension",
4049
+ "provenance": {
4050
+ "gem_url": "https://rubygems.org/downloads/thin-2.0.1.gem",
4051
+ "gem_sha256": "5bbde5648377f5c3864b5da7cd89a23b5c2d8d8bb9435719f6db49644bcdade9",
4052
+ "cache_relative_path": "thin-2.0.1.gem"
4053
+ }
4054
+ },
4055
+ {
4056
+ "name": "unicorn",
4057
+ "version": "6.1.0",
4058
+ "r10_profile": "default-source",
4059
+ "r10_extconf_args": [],
4060
+ "status": "excluded",
4061
+ "reason": "upstream suite does not pass with the reference compiler either (measured with tools/verify_gem_tests.rb --control) — no compiler can earn R10's verification level (d) here",
4062
+ "provenance": {
4063
+ "gem_url": "https://rubygems.org/downloads/unicorn-6.1.0.gem",
4064
+ "gem_sha256": "45dd987add4c2b084c1880a68373af42797a704ad7441faff9b14b4982aa0fc0",
4065
+ "cache_relative_path": "unicorn-6.1.0.gem"
4066
+ }
4067
+ },
4068
+ {
4069
+ "name": "debug",
4070
+ "version": "1.11.1",
4071
+ "r10_profile": "default-source",
4072
+ "r10_extconf_args": [],
4073
+ "status": "excluded",
4074
+ "reason": "upstream suite does not pass with the reference compiler either (measured with tools/verify_gem_tests.rb --control) — no compiler can earn R10's verification level (d) here",
4075
+ "provenance": {
4076
+ "gem_url": "https://rubygems.org/downloads/debug-1.11.1.gem",
4077
+ "gem_sha256": "2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6",
4078
+ "cache_relative_path": "debug-1.11.1.gem"
4079
+ }
4080
+ }
4081
+ ]
4082
+ }