Blame SOURCES/cryptsetup-2.0.4-zero-length-lseek-blockwise-i-o-should-return-zero.patch

ad2d76
From 685bcc56351b3e46b69d46118d23268b69052097 Mon Sep 17 00:00:00 2001
ad2d76
From: Ondrej Kozina <okozina@redhat.com>
ad2d76
Date: Tue, 19 Jun 2018 14:07:20 +0200
ad2d76
Subject: [PATCH 1/4] Zero length lseek blockwise i/o should return zero.
ad2d76
ad2d76
Note that both functions perform seek operations aligned to sector
ad2d76
boundary if possible before returning.
ad2d76
ad2d76
Unaligned input offset gets aligned on first preceding sector
ad2d76
boundary.
ad2d76
---
ad2d76
 lib/utils_io.c | 4 ++--
ad2d76
 1 file changed, 2 insertions(+), 2 deletions(-)
ad2d76
ad2d76
diff --git a/lib/utils_io.c b/lib/utils_io.c
ad2d76
index 0f671d6..94c4ef6 100644
ad2d76
--- a/lib/utils_io.c
ad2d76
+++ b/lib/utils_io.c
ad2d76
@@ -199,7 +199,7 @@ ssize_t write_lseek_blockwise(int fd, size_t bsize, size_t alignment,
ad2d76
 	if (lseek(fd, offset - frontHang, SEEK_SET) < 0)
ad2d76
 		return -1;
ad2d76
 
ad2d76
-	if (frontHang) {
ad2d76
+	if (frontHang && length) {
ad2d76
 		if (posix_memalign(&frontPadBuf, alignment, bsize))
ad2d76
 			return -1;
ad2d76
 
ad2d76
@@ -253,7 +253,7 @@ ssize_t read_lseek_blockwise(int fd, size_t bsize, size_t alignment,
ad2d76
 	if (lseek(fd, offset - frontHang, SEEK_SET) < 0)
ad2d76
 		return -1;
ad2d76
 
ad2d76
-	if (frontHang) {
ad2d76
+	if (frontHang && length) {
ad2d76
 		if (posix_memalign(&frontPadBuf, alignment, bsize))
ad2d76
 			return -1;
ad2d76
 
ad2d76
-- 
ad2d76
1.8.3.1
ad2d76