Hi all,

I got following stack:

 fffffd7ffed14b70 strlen () + 40
 fffffd7ffed71665 snprintf () + e5
 fffffd7fff36d088 pg_GSS_startup () + 88
 fffffd7fff36d43a pg_fe_sendauth () + 15a
 fffffd7fff36e557 PQconnectPoll () + 3b7
 fffffd7fff36e152 connectDBComplete () + a2
 fffffd7fff36dc32 PQsetdbLogin () + 1b2
 000000000041e96d main () + 30d
 000000000041302c ???????? ()

It seems that connection is not fully configured and krbsrvname or pghost is not filled. Following code in fe-auth.c pg_GSS_startup() causes a crash:

    440         maxlen = NI_MAXHOST + strlen(conn->krbsrvname) + 2;
    441         temp_gbuf.value = (char *) malloc(maxlen);
    442         snprintf(temp_gbuf.value, maxlen, "%...@%s",
    443                          conn->krbsrvname, conn->pghost);
    444         temp_gbuf.length = strlen(temp_gbuf.value);

And following code in fe-connect.c fillPGconn() fill NULL value.

    571         tmp = conninfo_getval(connOptions, "krbsrvname");
    572         conn->krbsrvname = tmp ? strdup(tmp) : NULL;

I think that pg_GSS_startup should sanity the input.

        Zdenek

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to