On Thu, Sep 24, 2009 at 07:57:55PM +0100, Sam Mason wrote: > > postgres@sussy:/root> createuser -D -p ricky > > I don't think you want to be passing "-p" here; it's saying to use > "ricky" as the port number, which fails (sounds like a bug if it doesn't > complain about this) giving a port number of zero Hum, why is PG doing an (unchecked) atoi on the user specified port rather than leaving it up to getaddrinfo to resolve the port? It would seem to require changing UNIXSOCK_PATH to accept a string as the "port number", which is probably a bit much of a change. The included doesn't feel very nice, but is probably more acceptable. -- Sam http://samason.me.uk/
--- src/interfaces/libpq/fe-connect.c~ 2009-06-11 15:49:13.000000000 +0100 +++ src/interfaces/libpq/fe-connect.c 2009-09-24 20:48:53.000000000 +0100 @@ -817,7 +817,16 @@ /* Set up port number as a string */ if (conn->pgport != NULL && conn->pgport[0] != '\0') + { portnum = atoi(conn->pgport); + if (portnum < 1 || portnum > 65535) + { + appendPQExpBuffer(&conn->errorMessage, + libpq_gettext("invalid port number \"%s\" specified\n"), + conn->pgport); + goto connect_errReturn; + } + } else portnum = DEF_PGPORT; snprintf(portstr, sizeof(portstr), "%d", portnum);
-- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general