Index: src/bin/pg_dump/pg_backup_archiver.c
===================================================================
RCS file: /u01/mirrors/cvs/pgsql/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v
retrieving revision 1.144
diff -u -p -c -r1.144 pg_backup_archiver.c
*** src/bin/pg_dump/pg_backup_archiver.c	26 Mar 2007 16:58:39 -0000	1.144
--- src/bin/pg_dump/pg_backup_archiver.c	5 Aug 2007 02:32:28 -0000
*************** char *
*** 1469,1475 ****
  ReadStr(ArchiveHandle *AH)
  {
  	char	   *buf;
! 	int			l;
  
  	l = ReadInt(AH);
  	if (l == -1)
--- 1469,1475 ----
  ReadStr(ArchiveHandle *AH)
  {
  	char	   *buf;
! 	int			l, res;
  
  	l = ReadInt(AH);
  	if (l == -1)
*************** ReadStr(ArchiveHandle *AH)
*** 1480,1486 ****
  		if (!buf)
  			die_horribly(AH, modulename, "out of memory\n");
  
! 		(*AH->ReadBufPtr) (AH, (void *) buf, l);
  		buf[l] = '\0';
  	}
  
--- 1480,1489 ----
  		if (!buf)
  			die_horribly(AH, modulename, "out of memory\n");
  
! 		if ((res = (*AH->ReadBufPtr) (AH, (void *) buf, l)) != l)
! 		{
! 			die_horribly(AH, modulename, "expected %d bytes, only got %d bytes\n", l, res);
! 		}
  		buf[l] = '\0';
  	}
  
