|
7 | 7 | * Portions Copyright (c) 1994, Regents of the University of California
|
8 | 8 | *
|
9 | 9 | * IDENTIFICATION
|
10 |
| - * $PostgreSQL: pgsql/src/interfaces/libpq/fe-auth.c,v 1.133 2007/11/15 21:14:46 momjian Exp $ |
| 10 | + * $PostgreSQL: pgsql/src/interfaces/libpq/fe-auth.c,v 1.134 2007/12/04 13:02:53 mha Exp $ |
11 | 11 | *
|
12 | 12 | *-------------------------------------------------------------------------
|
13 | 13 | */
|
@@ -618,11 +618,18 @@ pg_SSPI_continue(PGconn *conn)
|
618 | 618 | returnSTATUS_ERROR;
|
619 | 619 | }
|
620 | 620 |
|
621 |
| -if (pqPacketSend(conn,'p', |
622 |
| -outbuf.pBuffers[0].pvBuffer,outbuf.pBuffers[0].cbBuffer)) |
| 621 | +/* |
| 622 | + * If the negotiation is complete, there may be zero bytes to send. The server is |
| 623 | + * at this point not expecting any more data, so don't send it. |
| 624 | + */ |
| 625 | +if (outbuf.pBuffers[0].cbBuffer>0) |
623 | 626 | {
|
624 |
| -FreeContextBuffer(outbuf.pBuffers[0].pvBuffer); |
625 |
| -returnSTATUS_ERROR; |
| 627 | +if (pqPacketSend(conn,'p', |
| 628 | +outbuf.pBuffers[0].pvBuffer,outbuf.pBuffers[0].cbBuffer)) |
| 629 | +{ |
| 630 | +FreeContextBuffer(outbuf.pBuffers[0].pvBuffer); |
| 631 | +returnSTATUS_ERROR; |
| 632 | +} |
626 | 633 | }
|
627 | 634 | FreeContextBuffer(outbuf.pBuffers[0].pvBuffer);
|
628 | 635 | }
|
|