commit | 15076350e84fc66b66198c5e4da14a3e8b0b5a66 | [log] [tgz] |
---|---|---|
author | Joe Tsai <joetsai@digital-static.net> | Tue Jul 02 15:19:08 2019 -0700 |
committer | Joe Tsai <joetsai@digital-static.net> | Wed Jul 03 20:46:51 2019 +0000 |
tree | 2e56a614eb459e1fdc6497f1e64d988055a18d46 | |
parent | b2107fbd8d01726dec0f018b42b78e5e88d0f8ca [diff] |
reflect/protodesc: enforce strict validation Hyrum's Law dictates that if we do not prevent naughty behavior, people will rely on it. If we do not validate that the provided file descriptor is correct today, it will be near impossible to add proper validation checks later on. The logic added validates that the provided file descriptor is correct according to the same semantics as protoc, which was reversed engineered to derive the set of rules implemented here. The rules are unfortunately complicated because protobuf is a language full of many non-orthogonal features. While our logic is complicated, it is still 1/7th the size of the equivalent C++ code! Change-Id: I6acc5dc3bd2e4c6bea6cd9e81214f8104402602a Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/184837 Reviewed-by: Damien Neil <dneil@google.com>
WARNING: This repository is in active development. There are no guarantees about API stability. Breaking changes will occur until a stable release is made and announced.
This repository is for the development of the next major Go implementation of protocol buffers. This library makes breaking API changes relative to the existing Go protobuf library. Of particular note, this API aims to make protobuf reflection a first-class feature of the API and implements the protobuf ecosystem in terms of reflection.
List of relevant design documents:
We appreciate community contributions. See CONTRIBUTING.md.
Issues regarding the new API can be filed at github.com/golang/protobuf. Please use a APIv2:
prefix in the title to make it clear that the issue is regarding the new API work.