Re: BUG #16036: Segmentation fault while doing an update - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #16036: Segmentation fault while doing an update
Date
Msg-id 11540.1570159561@sss.pgh.pa.us
Whole thread Raw
In response to Re: BUG #16036: Segmentation fault while doing an update  (Andres Freund <andres@anarazel.de>)
Responses Re: BUG #16036: Segmentation fault while doing an update
Re: BUG #16036: Segmentation fault while doing an update
List 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 by date:

Previous
From: Andres Freund
Date:
Subject: Re: BUG #16036: Segmentation fault while doing an update
Next
From: Andres Freund
Date:
Subject: Re: BUG #16036: Segmentation fault while doing an update