pg_dump_check_write.patch
application/octet-stream
Filename: pg_dump_check_write.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/bin/pg_dump/pg_backup_custom.c | 7 | 1 |
| src/bin/pg_dump/pg_backup_directory.c | 7 | 1 |
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;
}
/*