xrow: fix bar new field update crash
A tuple update with the first operation creating a new field somewhere deep in the tuple and the second operation trying to go into that new field could crash. This happened because the route branching function xrow_update_route_branch() missed this case. It can be detected when see that the bar path is already fully used (the next JSON token is END), and the new operation's path is still not END. Closes #8216 NO_DOC=bugfix
Showing
- changelogs/unreleased/gh-8216-tuple-update-crash.md 4 additions, 0 deletionschangelogs/unreleased/gh-8216-tuple-update-crash.md
- src/box/xrow_update_route.c 10 additions, 9 deletionssrc/box/xrow_update_route.c
- test/box/update.result 10 additions, 1 deletiontest/box/update.result
- test/box/update.test.lua 3 additions, 0 deletionstest/box/update.test.lua
Loading