Re: [PATCH 04/12] selftests/mm: fix a char* assignment in mlock2-tests.c

From: John Hubbard
Date: Fri Jun 02 2023 - 14:57:01 EST


On 6/2/23 08:24, Peter Xu wrote:
On Fri, Jun 02, 2023 at 12:04:57PM +0200, David Hildenbrand wrote:
On 02.06.23 03:33, John Hubbard wrote:
The stop variable is a char*, so use "\0" when assigning to it, rather
than attempting to assign a character type. This was generating a
warning when compiling with clang.

Signed-off-by: John Hubbard <jhubbard@xxxxxxxxxx>
---
tools/testing/selftests/mm/mlock2-tests.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/mm/mlock2-tests.c b/tools/testing/selftests/mm/mlock2-tests.c
index 11b2301f3aa3..8ee95077dc25 100644
--- a/tools/testing/selftests/mm/mlock2-tests.c
+++ b/tools/testing/selftests/mm/mlock2-tests.c
@@ -50,7 +50,7 @@ static int get_vm_area(unsigned long addr, struct vm_boundaries *area)
printf("cannot parse /proc/self/maps\n");
goto out;
}
- stop = '\0';
+ stop = "\0";
sscanf(line, "%lx", &start);
sscanf(end_addr, "%lx", &end);


I'm probably missing something, but what is the stop variable supposed to do
here? It's completely unused, no?

if (!strchr(end_addr, ' ')) {
printf("cannot parse /proc/self/maps\n");
goto out;
}

Yes it is! I certainly had tunnel vision on that one. I've changed the
patch to simply delete that line, for v2, thanks.


I guess it wanted to do "*stop = '\0'" but it just didn't matter a lot
since the sscanf() just worked..


Maybe, yes. Hard to tell the original intent at this point...it might
have been used in an early draft version of the loop that didn't get
posted, perhaps.
thanks,
--
John Hubbard
NVIDIA