| From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
|---|---|
| To: | dan-eli(at)mail(dot)ru, pgsql-bugs(at)lists(dot)postgresql(dot)org |
| Subject: | Re: BUG #18743: /src/backend/rewrite/rewriteHandler.c |
| Date: | 2024-12-09 18:37:02 |
| Message-ID: | CAApHDvoxcTUcsG9dZKBJy+fxsEfHAjVnSm=c_3q_3jrGALtKmw@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
On Tue, 10 Dec 2024 at 03:14, PG Bug reporting form
<noreply(at)postgresql(dot)org> wrote:
> After having been compared to a NULL value at rewriteHandler.c:852, pointer
> '(**new_tles[attrno - 1]).expr' is dereferenced at rewriteHandler.c:859.
I'm not sure if I follow the issue here. At 851 we have:
apply_default = ((new_tle == NULL && commandType == CMD_INSERT) ||
(new_tle && new_tle->expr && IsA(new_tle->expr, SetToDefault)));
and at 859:
if (values_rte && new_tle && IsA(new_tle->expr, Var))
I get that the code is a little convoluted here, but I don't spot the
issue. The "having been compared to a NULL" you mention is for setting
the apply_default variable, and that variable does not have any
influence on the if condition at 859.
Can you specifically state the scenario you think will be handled incorrectly?
David
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Nathan Bossart | 2024-12-09 20:00:45 | Re: BUG #18585: Date/time conversion functions are not protected against integer overflow |
| Previous Message | Artur Zakirov | 2024-12-09 15:54:47 | pg_dump crash on identity sequence with not loaded attributes |