)]}'
{
  "commit": "5fc06f1db45337346db4ed380906c013f1e2f3f7",
  "tree": "798518aee4e61077da53f44052d368b89c523108",
  "parents": [
    "830d85ad0dfaa734e3b63d8bb9cbfd75d7be1f7b"
  ],
  "author": {
    "name": "Uğur Tafralı",
    "email": "tafraliugur@gmail.com",
    "time": "Sun Mar 15 06:04:37 2026 +0300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Mar 15 11:04:37 2026 +0800"
  },
  "message": "fix(rust): handle panics from fuzz-found edge cases (#3481)\n\nCloses #3480\n\nCargo-fuzz was hitting several panics in the serialization code.\nSwitched from unwrap/unreachable to proper error handling:\n\n- field_id calculation now uses checked_add to catch overflows instead\nof panicking\n- field name decoding switched from unwrap() to Result propagation\n- byte_to_encoding now returns Result for unknown encoding bytes instead\nof using unreachable!()\n- MetaStringBytes::new() updated to return Result so callers can handle\ninvalid inputs\n\nAll of these return the same error type so the call sites already handle\nit correctly.\n\n## Why?\nFuzzing found inputs that triggered panics. Better to return an error\nthan crash.\n\n## What does this PR do?\nReplaces panics with proper error returns in the metadata serialization\npaths.\n\n## Related issues\n#3480\n\n## AI Contribution Checklist\nN/A\n\n## Does this PR introduce any user-facing change?\nNo. Valid inputs behave identically. Invalid/malformed data now returns\nan error instead of panicking.\n\n## Benchmark\nN/A",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "368de1e18e56c158b95471651de0f2fd023df66d",
      "old_mode": 33188,
      "old_path": "rust/fory-core/src/meta/type_meta.rs",
      "new_id": "d4ab3a956a2f6fb9cb2ec67399e648438fc65119",
      "new_mode": 33188,
      "new_path": "rust/fory-core/src/meta/type_meta.rs"
    },
    {
      "type": "modify",
      "old_id": "f174db63443a2b5c8693af608f4861f990ce04ff",
      "old_mode": 33188,
      "old_path": "rust/fory-core/src/resolver/meta_string_resolver.rs",
      "new_id": "fb47acc88c2c0b530877212bf3040c68744877db",
      "new_mode": 33188,
      "new_path": "rust/fory-core/src/resolver/meta_string_resolver.rs"
    }
  ]
}
