diff -r 7d55d60e1fe2 -r 9e2289c77b04 src/server/plugins/postgresql/vfs.c --- a/src/server/plugins/postgresql/vfs.c Sat Aug 27 11:57:27 2022 +0200 +++ b/src/server/plugins/postgresql/vfs.c Thu Sep 08 17:34:16 2022 +0200 @@ -812,18 +812,21 @@ ssize_t pg_vfs_io_read(SYS_FILE fd, void *buf, size_t nbyte) { PgVFS *pgvfs = fd->ctx->vfs->instance; PgFile *pg = fd->data; + if(pg->fd < 0) return-1; return lo_read(pgvfs->connection, pg->fd, buf, nbyte); } ssize_t pg_vfs_io_write(SYS_FILE fd, const void *buf, size_t nbyte) { PgVFS *pgvfs = fd->ctx->vfs->instance; PgFile *pg = fd->data; + if(pg->fd < 0) return-1; return lo_write(pgvfs->connection, pg->fd, buf, nbyte); } ssize_t pg_vfs_io_pread(SYS_FILE fd, void *buf, size_t nbyte, off_t offset) { PgVFS *pgvfs = fd->ctx->vfs->instance; PgFile *pg = fd->data; + if(pg->fd < 0) return-1; if(lo_lseek64(pgvfs->connection, pg->fd, offset, SEEK_SET) == -1) { return -1; } @@ -833,6 +836,7 @@ ssize_t pg_vfs_io_pwrite(SYS_FILE fd, const void *buf, size_t nbyte, off_t offset) { PgVFS *pgvfs = fd->ctx->vfs->instance; PgFile *pg = fd->data; + if(pg->fd < 0) return-1; if(lo_lseek64(pgvfs->connection, pg->fd, offset, SEEK_SET) == -1) { return -1; } @@ -842,12 +846,14 @@ off_t pg_vfs_io_seek(SYS_FILE fd, off_t offset, int whence) { PgVFS *pgvfs = fd->ctx->vfs->instance; PgFile *pg = fd->data; + if(pg->fd < 0) return-1; return lo_lseek64(pgvfs->connection, pg->fd, offset, whence); } off_t pg_vfs_io_tell(SYS_FILE fd) { PgVFS *pgvfs = fd->ctx->vfs->instance; PgFile *pg = fd->data; + if(pg->fd < 0) return-1; return lo_tell64(pgvfs->connection, pg->fd); }