Browse Source

common/sendfile.c: bugfix can't support offset is NULL

In ltp testcase sendfile08.c, it use offset=NULL to test the api.

PATCH V2:
fixup the stupid missing check in the end. Sorry for lose test.

See "man sendfile" and it really support offset is NULL.

Signed-off-by: Guo Ren <ren_guo@c-sky.com>
Guo Ren 6 years ago
parent
commit
343fb004d9
1 changed files with 2 additions and 2 deletions
  1. 2 2
      libc/sysdeps/linux/common/sendfile.c

+ 2 - 2
libc/sysdeps/linux/common/sendfile.c

@@ -40,7 +40,7 @@ ssize_t sendfile(int out_fd, int in_fd, __off_t *offset, size_t count)
 		return -1;
 	}
 
-	if (offset == NULL || (int)offset < 0) {
+	if ((int)offset < 0) {
 		__set_errno(EFAULT);
 		return -1;
 	}
@@ -54,7 +54,7 @@ ssize_t sendfile(int out_fd, int in_fd, __off_t *offset, size_t count)
 
 	res = INLINE_SYSCALL(sendfile64, 4, out_fd, in_fd, off, count);
 
-	if (res >= 0)
+	if (res >= 0 && offset != NULL)
 		*offset = off64;
 
 	return res;