pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Bossart, Nathan <bossartn@amazon.com>
Cc: pgsql-hackers@lists.postgresql.org <pgsql-hackers@lists.postgresql.org>
Subject: Re: Improving psql's \password command
Date: Mon, 15 Nov 2021 16:03:53 -0500
Message-ID: <2152988.1637010233@sss.pgh.pa.us> (raw)
In-Reply-To: <5EDA38EF-C411-4C7D-A9BC-10B1D4584E5E@amazon.com>
References: <747443.1635536754@sss.pgh.pa.us>
	<C2787D93-6871-4D93-9CF3-CD7BB489F47F@amazon.com>
	<765509.1635552418@sss.pgh.pa.us>
	<7BAC8A28-148B-4B03-A345-D68071388300@amazon.com>
	<1553329.1636647111@sss.pgh.pa.us>
	<E0C46CDF-46B2-4388-B53B-96EB2CA0F71E@amazon.com>
	<1847699.1636747076@sss.pgh.pa.us>
	<AEA1BA57-BD21-4237-9859-1C04FE38602B@amazon.com>
	<2141902.1636999964@sss.pgh.pa.us>
	<5EDA38EF-C411-4C7D-A9BC-10B1D4584E5E@amazon.com>

"Bossart, Nathan" <bossartn@amazon.com> writes:
> On 11/15/21, 10:13 AM, "Tom Lane" <tgl@sss.pgh.pa.us> wrote:
>> * I don't believe that this bit is necessary, or if it is,
>> the comment fails to justify it:
>> 
>> -       initStringInfo(&buf);
>> +       /* make sure buf is palloc'd so we don't lose changes after a longjmp */
>> +       buf = makeStringInfo();

> My main worry was that buf->data might get repalloc'd via
> enlargeStringInfo(), which could cause problems after a longjmp.

So what?  That has nothing to do with whether the buf struct itself
is alloc'd or not.  Besides which, no longjmp is going to happen
during any reallocation.  I'm not entirely sure what scenario
you're worried about, but I don't see how alloc'ing the
StringInfoData struct would make it any safer.  If anything it'd
be less safe, since the StringInfoData is certain to be on the
stack, while a buf pointer variable is likely to be kept in a
register.  But really that doesn't matter anyhow, since this
is a stack level below where the sigsetjmp call is.  AFAIK the
only longjmp clobber risk is to pg_get_line_append's mutable
local variables, of which there are none.

			regards, tom lane





view thread (22+ messages)  latest in thread

Message-ID: <2152988.1637010233@sss.pgh.pa.us>
Permalink:  ../2152988.1637010233@sss.pgh.pa.us/
Also on:    postgresql.org/message-id/2152988.1637010233@sss.pgh.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: tgl@sss.pgh.pa.us, bossartn@amazon.com, pgsql-hackers@lists.postgresql.org
  Subject: Re: Improving psql's \password command
  In-Reply-To: <2152988.1637010233@sss.pgh.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox