From ad5ec9706b6485223ae9e96b6dfda9fff1c333bf Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Mon, 6 Feb 2023 08:00:00 +0000 Subject: ucopy: fix umovestr return value when the string crosses page boundaries * src/ucopy.c (umovestr): When the string crosses page boundaries, take the length on each page into account. Resolves: https://github.com/strace/strace/issues/217 --- src/ucopy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ucopy.c b/src/ucopy.c index c769a1916..c039feedf 100644 --- a/src/ucopy.c +++ b/src/ucopy.c @@ -432,7 +432,7 @@ umovestr(struct tcb *const tcp, kernel_ulong_t addr, unsigned int len, char *nul_addr = memchr(laddr, '\0', r); if (nul_addr) - return (nul_addr - laddr) + 1; + return nread + (nul_addr - laddr) + 1; addr += r; laddr += r; nread += r; -- cgit v1.2.1