• Petr Prokhorenkov's avatar
    Fix bug with silent message corruption in LITE_RUNTIME. · f4f9aec5
    Petr Prokhorenkov authored
    A protobuf message will be corrupted in the following scenario:
      1. Use LITE_RUNTIME.
      2. Have an optional enum field following some other field.
      3. Update protocol by adding new values to the enum.
      4. Have an old client parse and serialize a message having enum field
          set to a value the client does not understand.
      5. Field preceeding the enum is now corrupted.
    
    The bug is due to the fact that optimized fallthrough in parser code
    does not update variablle 'tag' when jumping to the parser code for the
    next field.
    f4f9aec5
lite_unittest.cc 26 KB