Skip to contentSkip to conversation

bin/ftest02: Fix negative lseek offset expression.

PATCH New Steve Ellcey 2 participants 2 messages Mar 2, 2017 – Mar 3, 2017

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 bin/ftest02: Fix negative lseek offset expression.

Cast the result of sizeof to (off_t) so that we have a signed value before we negate it. Otherwise we will get the wrong value in cases where sizeof returns a 32 bit unsigned type and off_t is a 64 bit signed type. This problem shows up on x86_64 when compiling with -mx32.

This fixes LTP issue #135.

---
 testcases/kernel/fs/ftest/ftest02.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
testcases/kernel/fs/ftest/ftest02.c +1 -1
index f205961..a416a98 100644
@@ -268,7 +268,7 @@ static void crfile(int me, int count)
 	val = write(fd, crmsg, sizeof(crmsg) - 1);
 	warn(val, "write", 0);
 
-	val = lseek(fd, -(sizeof(crmsg) - 1), 1);
+	val = lseek(fd, -((off_t) sizeof(crmsg) - 1), 1);
 	warn(val, "lseek", 0);
 
 	val = read(fd, buf, sizeof(crmsg) - 1);
Signature · 1 line
2.7.4