diff --git a/src/bin/pg_dump/pg_backup_custom.c b/src/bin/pg_dump/pg_backup_custom.c index 72bdc39..c7393c5 100644 --- a/src/bin/pg_dump/pg_backup_custom.c +++ b/src/bin/pg_dump/pg_backup_custom.c @@ -320,11 +320,17 @@ _WriteData(ArchiveHandle *AH, const void *data, size_t dLen) { lclContext *ctx = (lclContext *) AH->formatData; CompressorState *cs = ctx->cs; + size_t res; if (dLen == 0) return 0; - return WriteDataToArchive(AH, cs, data, dLen); + res = WriteDataToArchive(AH, cs, data, dLen); + if (res != dLen) + exit_horribly(modulename, "could not write to output file: %s\n", + strerror(errno)); + + return res; } /* diff --git a/src/bin/pg_dump/pg_backup_directory.c b/src/bin/pg_dump/pg_backup_directory.c index 1bed8a9..2660cc6 100644 --- a/src/bin/pg_dump/pg_backup_directory.c +++ b/src/bin/pg_dump/pg_backup_directory.c @@ -347,6 +347,7 @@ static size_t _WriteData(ArchiveHandle *AH, const void *data, size_t dLen) { lclContext *ctx = (lclContext *) AH->formatData; + size_t res; if (dLen == 0) return 0; @@ -354,7 +355,12 @@ _WriteData(ArchiveHandle *AH, const void *data, size_t dLen) /* Are we aborting? */ checkAborting(AH); - return cfwrite(data, dLen, ctx->dataFH); + res = cfwrite(data, dLen, ctx->dataFH); + if (res != dLen) + exit_horribly(modulename, "could not write to output file: %s\n", + strerror(errno)); + + return res; } /*