pgsql/src/backend/main main.c - Mailing list pgsql-committers

From Bruce Momjian - CVS
Subject pgsql/src/backend/main main.c
Date
Msg-id 200101240350.f0O3o6I06354@hub.org
Whole thread Raw
List pgsql-committers
CVSROOT:    /home/projects/pgsql/cvsroot
Module name:    pgsql
Changes by:    momjian@hub.org    01/01/23 22:50:06

Modified files:
    src/backend/main: main.c

Log message:
    attached is take-2 of a patch which fixes a bug related
    to the use of getpwuid when running in standalone mode.
    this patch allocates some persistent storage (using
    strdup) to store the username obtained with getpwuid
    in src/backend/main/main.c.  this is necessary because
    later on, getpwuid is called again (in ValidateBinary).

    the man pages for getpwuid on SCO OpenServer, FreeBSD,
    and Darwin all have words to this effect (this is from
    the SCO OpenServer man page):

    Note
    ====
    All information is contained in a static area, so it must
    be copied if it is to be saved. Otherwise, it may be
    overwritten on subsequent calls to these routines.

    in particular, on my platform, the storage used to hold
    the pw_name from the first call is overwritten such that
    it looks like an empty username.  this causes a problem
    later on in SetSessionUserIdFromUserName.

    i'd assume this isn't a problem on most platforms because
    getpwuid is called with the same UID both times, and the
    same thing ends up happening to that static storage each
    time.  however, that's not guaranteed, and is _not_ what
    happens on my platform (at least :).

    this is for the version of 7.1 available via anon cvs as
    of Tue Jan 23 15:14:00 2001 PST:
    .../src/backend/main/main.c,v 1.37 2000/12/31 18:04:35 tgl Exp

    -michael thornburgh, zenomt@armory.com


pgsql-committers by date:

Previous
From: Bruce Momjian - CVS
Date:
Subject: pgsql/src bin/psql/command.c include/config.h. ...
Next
From: Tom Lane
Date:
Subject: pgsql/ onfig/c-library.m4 /configure.in /confi ...