[Tarantool-patches] [PATCH luajit] ARM64: Fix pcall() error case.
Sergey Kaplun
skaplun at tarantool.org
Wed Feb 15 09:57:10 MSK 2023
Hi, Maxim!
Thanks for the review!
On 15.02.23, Maxim Kokryashkin wrote:
>
> Hi, Sergey!
> LGTM, except for a few nits regarding the commit message.
Fixed your comments, the new commit message is the following:
| ARM64: Fix pcall() error case.
|
| Reported by Alex Orlenko.
|
| (cherry picked from commit b4b2dce9fc3ffaaaede39b36d06415311e2aa516)
|
| The `pcall()` assembler preambule modifies `RC`, which is mapped to
| `x28` (the value is N_args * 8), during the check of the amount of the
| given arguments. So, this wrong value being used in the `fff_fallback`
| routine leads to a crash on error throwing, because the Lua stack is
| incorrectly filled and can't be unwound.
|
| This patch adds the additional comparison before taking the fallback
| branch and modifies `RC` only after this branch.
|
| Sergey Kaplun:
| * added the description and the test for the problem
|
| Part of tarantool/tarantool#8069
Branch is force-pushed.
>
> >
> >>From: Mike Pall <mike>
> >>
> >>Reported by Alex Orlenko.
> >>
> >>(cherry picked from commit b4b2dce9fc3ffaaaede39b36d06415311e2aa516)
> >>
> >>The `pcall()` assembler preambule modifies `RC` (`x28`) (N args * 8)
> >The «`RC` (`x28`) (N args * 8)» expression is hard to percieve. I suggest
> >reformulating it in a way like «modifies `RC`, which is mapped to `x28`, so
> >it has value ...». Feel free to ignore.
> >>during the check of the amount of the given arguments. So, this wrong
> >>value using in the `fff_fallback` routine leading to a crash on the
> >Typo: s/using/being used/
> >Typo: s/leading/leads
> >Typo: s/on the/on
> >>error throwing, because the Lua stack is filled incorrect and can't be
> >Typo: s/is filled incorrect/is incorrectly filled/
> >>unwound.
> >>
> >>This patch adds the additional comparison before taking the fallback
> >>branch and modifies `RC` only after this branch.
> >>
> >>Sergey Kaplun:
> >>* added the description and the test for the problem
> >>
> >>Part of tarantool/tarantool#8069
> >>---
<snipped>
> >--
> >Best regards,
> >Maxim Kokryashkin
> >
--
Best regards,
Sergey Kaplun
More information about the Tarantool-patches
mailing list