|
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 | } |
|