Re: be-secure-gssapi.c and auth.c with setenv() not compatible on Windows

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-05-29T08:52:28Z
Lists: pgsql-hackers
On Fri, May 28, 2021 at 11:37:22AM -0400, Tom Lane wrote:
> There's a lot of value in keeping the branches looking alike.
> On the other hand, 7ca37fb hasn't survived contact with the
> public yet, so I'm a bit nervous about it.

I don't think this set of complications is worth the risk
destabilizing those stable branches.

> It's not clear to me how much of 7ca37fb you're envisioning
> back-patching in (2).  I think it'd be best to back-patch
> only the addition of pgwin32_setenv, and then let the gssapi
> code use it.  In that way, if there's anything wrong with
> pgwin32_setenv, we're only breaking code that never worked
> on Windows before anyway.

Just to be clear, for 2) I was thinking to pick up the minimal parts
you have changed in win32env.c and add src/port/setenv.c to add the
fallback implementation of setenv(), without changing anything else.
This also requires grabbing the small changes within pgwin32_putenv(),
visibly.
--
Michael

Commits

  1. Add fallback implementation for setenv()

  2. Use setenv() in preference to putenv().