1.1 --- a/libext2fs_blockserver/lib/src/blockserver_io.c Sun Oct 02 00:39:35 2022 +0200
1.2 +++ b/libext2fs_blockserver/lib/src/blockserver_io.c Thu Oct 20 23:03:41 2022 +0200
1.3 @@ -205,13 +205,20 @@
1.4
1.5 /* Perform the read at the given location. */
1.6
1.7 - client_seek(data->file, block * channel->block_size, SEEK_SET);
1.8 - read = client_read(data->file, buf, to_read);
1.9 + if (client_seek(data->file, block * channel->block_size, SEEK_SET) != block * channel->block_size)
1.10 + {
1.11 + read = 0;
1.12 + retval = EXT2_ET_LLSEEK_FAILED;
1.13 + }
1.14 + else
1.15 + {
1.16 + read = client_read(data->file, buf, to_read);
1.17
1.18 - /* Check for a short read. */
1.19 + /* Check for a short read. */
1.20
1.21 - if (read < to_read)
1.22 - retval = EXT2_ET_SHORT_READ;
1.23 + if (read < to_read)
1.24 + retval = EXT2_ET_SHORT_READ;
1.25 + }
1.26
1.27 /* Handle read errors generally. */
1.28
1.29 @@ -238,13 +245,20 @@
1.30
1.31 /* Perform the write at the given location. */
1.32
1.33 - client_seek(data->file, block * channel->block_size, SEEK_SET);
1.34 - written = client_write(data->file, buf, to_write);
1.35 + if (client_seek(data->file, block * channel->block_size, SEEK_SET) != block * channel->block_size)
1.36 + {
1.37 + retval = EXT2_ET_LLSEEK_FAILED;
1.38 + written = 0;
1.39 + }
1.40 + else
1.41 + {
1.42 + written = client_write(data->file, buf, to_write);
1.43
1.44 - /* Check for a short write. */
1.45 + /* Check for a short write. */
1.46
1.47 - if (written < to_write)
1.48 - retval = EXT2_ET_SHORT_WRITE;
1.49 + if (written < to_write)
1.50 + retval = EXT2_ET_SHORT_WRITE;
1.51 + }
1.52
1.53 /* Handle write errors generally. */
1.54