From df7e4aeeed27c35994bc12614d5ffcb82ec6497b Mon Sep 17 00:00:00 2001
From: dzwdz
Date: Fri, 29 Jul 2022 19:30:26 +0200
Subject: fsutil/fs_normslice: define *offset == 0 when *length == 0

---
 src/shared/fsutil.c                  | 12 +++++-------
 src/shared/include/camellia/fsutil.h |  1 -
 2 files changed, 5 insertions(+), 8 deletions(-)

(limited to 'src/shared')

diff --git a/src/shared/fsutil.c b/src/shared/fsutil.c
index a1dabfd..45a64f6 100644
--- a/src/shared/fsutil.c
+++ b/src/shared/fsutil.c
@@ -45,11 +45,9 @@ void fs_normslice(long *restrict offset, size_t *restrict length, size_t max, bo
 	}
 
 end:
-	if (*length > 0) {
-		assert(0 <= *offset);
-		if (!expand)
-			assert(*offset + *length <= max);
-	} else {
-		/* EOF, *offset is undefined. */
-	}
+	if (*length == 0) *offset = 0;
+
+	assert(0 <= *offset);
+	if (!expand)
+		assert(*offset + *length <= max);
 }
diff --git a/src/shared/include/camellia/fsutil.h b/src/shared/include/camellia/fsutil.h
index eb2b23e..8b8c4fc 100644
--- a/src/shared/include/camellia/fsutil.h
+++ b/src/shared/include/camellia/fsutil.h
@@ -3,7 +3,6 @@
 #include <stddef.h>
 
 /** Normalizes the offset and length passed to a fs into safe values.
- * If returns *length == 0, *offset is meaningless.
  *
  * @param expand Can this operation expand the target file?
  *                true  if writing to a file with an adjustable size
-- 
cgit v1.2.3