From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Антон Власов <druidvav(at)gmail(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #16036: Segmentation fault while doing an update |
Date: | 2019-10-04 03:26:01 |
Message-ID: | 11540.1570159561@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Andres Freund <andres(at)anarazel(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2019-10-04 03:36:10 | Re: BUG #16036: Segmentation fault while doing an update |
Previous Message | Andres Freund | 2019-10-04 03:20:20 | Re: BUG #16036: Segmentation fault while doing an update |