Bug 1786282 - Certify encoding_rs, chardetng, and their FFI crates. r=supply-chain-reviewers,bholley

Differential Revision: https://phabricator.services.mozilla.com/D155210
This commit is contained in:
Henri Sivonen 2022-08-23 05:12:50 +00:00
Родитель 8839aff8b8
Коммит 3ed8496651
2 изменённых файлов: 34 добавлений и 20 удалений

Просмотреть файл

@ -117,6 +117,18 @@ who = "Mike Hommey <mh+mozilla@glandium.org>"
criteria = "safe-to-deploy"
delta = "1.0.9 -> 1.1.1"
[[audits.chardetng]]
who = "Henri Sivonen <hsivonen@hsivonen.fi>"
criteria = "safe-to-deploy"
version = "0.1.9"
notes = "I, Henri Sivonen, wrote this (safe-code-only) crate for Gecko even though the crate is published via crates.io."
[[audits.chardetng_c]]
who = "Henri Sivonen <hsivonen@hsivonen.fi>"
criteria = "safe-to-deploy"
version = "0.1.2"
notes = "I, Henri Sivonen, wrote this crate for Gecko even though it is published via crates.io. The buffer input assumes Rust slice constraints for the start pointer. In Gecko, this is taken care of by mozilla::Span, but the C API doesn't conform to idiomatic C constraints on this point."
[[audits.clap_lex]]
who = "Mike Hommey <mh+mozilla@glandium.org>"
criteria = "safe-to-deploy"
@ -183,6 +195,28 @@ who = "Mike Hommey <mh+mozilla@glandium.org>"
criteria = "safe-to-deploy"
delta = "1.6.1 -> 1.7.0"
[[audits.encoding_c]]
who = "Henri Sivonen <hsivonen@hsivonen.fi>"
criteria = "safe-to-deploy"
version = "0.9.8"
notes = "I, Henri Sivonen, wrote encoding_c for Gecko even though it is published via crates.io. There are two caveats: 1) the C API is designed to be used together with mozilla::Span and is unidiomatic for zero-length inputs otherwise. 2) It is idiomatic in C and C++ to pass uninitialized buffers as output buffers. This is generally documented to be UB in Rust, but idiomatic C and C++ usage here relies on this not actually being UB for buffers of integers (which these buffers are). See https://github.com/hsivonen/encoding_rs/issues/79#issuecomment-1211870361"
[[audits.encoding_c_mem]]
who = "Henri Sivonen <hsivonen@hsivonen.fi>"
criteria = "safe-to-deploy"
version = "0.2.6"
notes = """
I, Henri Sivonen, wrote encoding_c_mem for Gecko even though it is published via crates.io. There are two caveats: 1) the C API is designed to be used together with mozilla::Span and is unidiomatic for zero-length inputs otherwise. 2) It is idiomatic in C and C
++ to pass uninitialized buffers as output buffers. This is generally documented to be UB in Rust, but idiomatic C and C++ usage here relies on this not actually being UB for buffers of integers (which these buffers are). See https://github.com/hsivonen/encoding_rs/i
ssues/79#issuecomment-1211870361
"""
[[audits.encoding_rs]]
who = "Henri Sivonen <hsivonen@hsivonen.fi>"
criteria = "safe-to-deploy"
version = "0.8.31"
notes = "I, Henri Sivonen, wrote encoding_rs for Gecko and have reviewed contributions by others. There are two caveats to the certification: 1) The crate does things that are documented to be UB but that do not appear to actually be UB due to integer types differing from the general rule; https://github.com/hsivonen/encoding_rs/issues/79 . 2) It would be prudent to re-review the code that reinterprets buffers of integers as SIMD vectors; see https://github.com/hsivonen/encoding_rs/issues/87 ."
[[audits.extend]]
who = "Ben Dean-Kawamura <bdk@mozilla.com>"
criteria = "safe-to-deploy"

Просмотреть файл

@ -325,14 +325,6 @@ criteria = "safe-to-deploy"
version = "0.1.1"
criteria = "safe-to-deploy"
[[exemptions.chardetng]]
version = "0.1.9"
criteria = "safe-to-deploy"
[[exemptions.chardetng_c]]
version = "0.1.2"
criteria = "safe-to-deploy"
[[exemptions.chrono]]
version = "0.4.19"
criteria = "safe-to-deploy"
@ -545,18 +537,6 @@ criteria = "safe-to-deploy"
version = "1.6.1"
criteria = "safe-to-deploy"
[[exemptions.encoding_c]]
version = "0.9.8"
criteria = "safe-to-deploy"
[[exemptions.encoding_c_mem]]
version = "0.2.6"
criteria = "safe-to-deploy"
[[exemptions.encoding_rs]]
version = "0.8.31"
criteria = "safe-to-deploy"
[[exemptions.enumset]]
version = "1.0.11"
criteria = "safe-to-deploy"