From: | strk <strk(at)keybit(dot)net> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-patches(at)postgresql(dot)org |
Subject: | Re: query output in psql PROMPT |
Date: | 2005-01-14 17:49:18 |
Message-ID: | 20050114174918.GD14149@freek.keybit.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
Mm... let alone my patch but the 'Uses undefined contents of buf'
is not true (buf is initialized to contain all 0es:
111:memset(buf, 0, MAX_PROMPT_SIZE + 1);
And the 'Falls off the end of prompt string' is common to
all non-singlechar handlings (execute command, interpolate variable).
.. the remaining part can be cleaned up but I dunno about transaction
state problems ..
--strk;
On Fri, Jan 14, 2005 at 12:06:32PM -0500, Tom Lane wrote:
> strk <strk(at)keybit(dot)net> writes:
> > A simple patch allow query output in psql PROMPT strings:
>
> Why is this a good idea? Having a query implicitly executed during
> every prompt will have a ton of bad side effects, for instance
> prematurely freezing the query snapshot in SERIALIZABLE transactions.
>
> The syntax you propose is downright bizarre --- what if I needed a dot
> in the query text?
>
> > + cmdend = strcspn(cmd, ".");
> > + cmd[cmdend] = '\0';
> > + if (cmd)
> > + {
> > + res = PSQLexec(cmd, false);
> > + }
>
> What's the if for? cmd can't be NULL (you already dumped core if it
> is).
>
> > + if (res && PQntuples(res) )
> > + {
> > + memcpy(buf, PQgetvalue(res, 0, 0), MAX_PROMPT_SIZE-1);
> > + PQclear(res);
> > + }
>
> Leaks memory on query failure.
>
> > + if (strlen(buf) > 0 && buf[strlen(buf) - 1] == '\n')
> > + buf[strlen(buf) - 1] = '\0';
>
> Uses undefined contents of buf on query failure.
>
> > + p += cmdend + 1;
>
> Falls off the end of the prompt if there was no terminating dot, causing
> subsequent iterations of the loop to continue reading undefined memory.
>
> regards, tom lane
--
For standing up against patentability of software,
Thank You, Poland!
Read the intervention: http://kwiki.ffii.org/ConsPolon041221En
Send your thanks: thankyoupoland.info
Read/do more: http://www.noepatents.org/
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2005-01-14 17:54:00 | Re: Minor comment correction |
Previous Message | Alvaro Herrera | 2005-01-14 17:46:43 | Minor comment correction |