1. 10 Dec, 2019 5 commits
    • Thomas Van Lenten's avatar
      Remove use of VLA. · 065fa2f3
      Thomas Van Lenten authored
      VLAs complicate static analysis and bloat stack size. Replace VLA allocation
      with calls to malloc and free.  This will alos the code to build with -Wvla.
      065fa2f3
    • William A Rowe Jr's avatar
      Treat F5-FF octets as single (invalid) characters · 53a814a0
      William A Rowe Jr authored
      This corresponds to the newest reading of RFC 3629, and results
      in the largest possible number of character entities by any
      valid parser. This may result in a buffer which is oversized,
      but never undersized.
      
      This is after further discussion with acozzette in this PR;
      https://github.com/protocolbuffers/protobuf/pull/6844
      
      Signed-off-by: William A Rowe Jr wrowe@pivotal.io
      Signed-off-by: Yechiel Kalmenson ykalmenson@pivotal.io
      53a814a0
    • William A Rowe Jr's avatar
      Correct interpretation of utf-8 0xf8-0xff · 961c0e6b
      William A Rowe Jr authored
      In consuming this useful string utility, it was discovered
      that the interpretation of leading byte codes 0xf8-0xff
      did not conform to either the RFC 3629 nor ISO/IEC 10646
      definitions of utf-8.
      
      The IETF RFC describes only 1-4 byte encodings (a limited
      number of 4 byte encodings at that), and plainly states in
      section 1. Introduction;
         o  The octet values C0, C1, F5 to FF never appear.
      
      Alternately, the ISO definition "R.2 Specification of UTF-8"
      preseented in the original IETF RFC 2279 clearly define the
      meaning of leading byte values F5 through FD, and RFC 3629
      Section 10. Security paragraph 3 calls out this alternate
      reading (alterative to "never appears".) F5-F7 begin an
      invalid (in the domain of unicode code points) 4-byte UTF-8
      sequence (similar to F0-F4), while F8-FC begin a 5-byte
      sequence, FC and FD begin a 6 byte sequence.
      
      The curent code is wrong in that it doesn't treat the codes
      F8-FF as invalid 1-byte characters, nor does it treat the
      codes F8-FD as the correct number of bytes. No valid parser
      will land these lead characters 4 bytes forward. Most will
      treat these as the 5 or 6 byte utf-32 character and may then
      treat the resulting character as invalid, while some parsers
      may reject all leading F5-FF characters as a single byte of
      erronious input, followed by each invalid continuation byte.
      
      We propose the conventional reading of F8-FD as 5 and 6 byte
      sequences as originally defined, while FE-FF must be read
      as single byte invalid code points.
      Signed-off-by: 's avatarWilliam A Rowe Jr <wrowe@pivotal.io>
      Signed-off-by: 's avatarYechiel Kalmenson <ykalmenson@pivotal.io>
      961c0e6b
    • summerCol's avatar
      fix typos in benchmarks/README.md · 6d087c25
      summerCol authored
      6d087c25
    • Yannic's avatar
      Add --<lang>_opt flag for all built-in generators · 4447fcc1
      Yannic authored
      Plugins (and some built-in generators) have `--<lang>_opt` flag that
      allows passing parameters one-by-one instead of passing them as
      `--<lang>_out=<params>:<out_base>`. This PR changes protoc to
      allow using `--<lang>_opt` for all (built-in) generators.
      4447fcc1
  2. 06 Dec, 2019 5 commits
  3. 05 Dec, 2019 5 commits
  4. 04 Dec, 2019 1 commit
  5. 03 Dec, 2019 2 commits
  6. 02 Dec, 2019 3 commits
  7. 27 Nov, 2019 2 commits
  8. 26 Nov, 2019 1 commit
  9. 25 Nov, 2019 1 commit
  10. 24 Nov, 2019 3 commits
  11. 22 Nov, 2019 2 commits
  12. 21 Nov, 2019 2 commits
  13. 20 Nov, 2019 4 commits
  14. 19 Nov, 2019 3 commits
  15. 18 Nov, 2019 1 commit
    • Paul Yang's avatar
      Persistent Descriptor Pool (#6899) · 3cae8677
      Paul Yang authored
      * Make reserve names map persistent
      
      * Add DescriptorInternal to map
      
      * Use get_msgdef_desc in encode_decode.c
      
      * Add persistent map for ce=>def and enum=>def
      
      * Replace get_ce_obj
      
      * Remove get_proto_obj
      
      * Remove obsolete fields from Descriptor and EnumDescriptor
      
      * Add cache for descriptor php values
      
      * Add cache for descriptors
      
      * Fix bug
      
      * Avoid add generated file again if it has been added
      
      * Fix the bug upb depends on null-ended str for look up.
      
      * Initialize generated pool impl
      
      * Turn down old generated pool
      
      * Add init entry flag protobuf.keep_descriptor_pool_after_request
      
      By default, it's off. Add protobuf.keep_descriptor_pool_after_request=1 to php.ini to enable it
      
      * Fix zts build
      3cae8677