Re: [BUGS] Bug #756: suggestion: file with password instead
Bruce Momjian <pgman@candle.pha.pa.us>
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL-patches <pgsql-patches@postgresql.org>
Date: 2002-09-06T02:32:40Z
Lists: pgsql-bugs
Attachments
OK, changes made. The pasting wasn't my idea but was there as part of
the original source:
sprintf(psqlrc, "%s/.psqlrc-" PG_VERSION, home);
I thought that was the way to do it so I propogated it consistenly.
No unpropoaged. Thanks for the code review.
---------------------------------------------------------------------------
Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > + #define PSQLHISTORY "/.psql_history"
> > ...
> > ! char *psql_history = (char *) malloc(strlen(home) +
> > ! strlen(PSQLHISTORY) + 1);
>
> > ! sprintf(psql_history, "%s" PSQLHISTORY, home);
>
> This seems like a really ugly coding practice. The sprintf is hard to
> read and absolutely dependent on the assumption that PSQLHISTORY
> contains no %. I'd suggest this pattern:
>
> #define PSQLHISTORY ".psql_history"
> > ...
> > ! char *psql_history = (char *) malloc(strlen(home) +
> > ! strlen(PSQLHISTORY) + 2);
>
> > ! sprintf(psql_history, "%s/%s", home, PSQLHISTORY);
>
> as being easier to read and safer.
>
> In PasswordFromFile():
>
> > + /* Look for it in the home dir */
> > + home = getenv("HOME");
> > + if (home)
> > + {
> > + pgpassfile = malloc(strlen(home) + strlen(PGPASSFILE) + 1);
> > + if (!pgpassfile)
> > + {
> > + fprintf(stderr, gettext("%s: out of memory\n"), pset.progname);
> > + exit(EXIT_FAILURE);
> > + }
> > + }
> > + else
> > + return NULL;
>
> libpq has no business calling exit(). How about just "return NULL" like
> all the other failure cases in that routine?
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073