Re: BUG #16036: Segmentation fault while doing an update
| От | Tom Lane |
|---|---|
| Тема | Re: BUG #16036: Segmentation fault while doing an update |
| Дата | |
| Msg-id | 11540.1570159561@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Re: BUG #16036: Segmentation fault while doing an update (Andres Freund <andres@anarazel.de>) |
| Ответы |
Re: BUG #16036: Segmentation fault while doing an update
Re: BUG #16036: Segmentation fault while doing an update |
| Список | pgsql-bugs |
Andres Freund <andres@anarazel.de> writes:
> So I think what we need to do is:
> 1) only call ExecCopySlot() if slot != newslot - this fixes the crash
> 2) Add an assert to ExecCopySlot() ensuring source and target slot are
> distinct
> 3) Figure out why our tests didn't catch this, this afaict should be a
> tested scenario
> 4) Fix confusing variable naming around newSlot/newslot in ExecBRUpdateTriggers
Maybe instead of 1+2, change ExecCopySlot like this:
- dstslot->tts_ops->copyslot(dstslot, srcslot);
+ if (dstslot != srcslot)
+ dstslot->tts_ops->copyslot(dstslot, srcslot);
That would fix other similar instances, not just this one caller.
regards, tom lane
В списке pgsql-bugs по дате отправления: