[PATCH] ioctl10: fix the sscanf() call to handle 64-bit inode on 32-bit arch
Jeff Layton via ltp <[email protected]>
| Newsgroups | gmane.linux.ltp |
|---|---|
| Message-ID | <[email protected]> |
This test started failing recently on arm32, when we switched the kernel to displaying the full 64-bit inode number in the maps file. Change the testcase to allow for a full 64-bit inode number on all arches. The value it's compared to is already 64-bits, so widening this field is all that is necessary. Reported-by: Mark Brown <[email protected]> Signed-off-by: Jeff Layton <[email protected]> --- testcases/kernel/syscalls/ioctl/ioctl10.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testcases/kernel/syscalls/ioctl/ioctl10.c b/testcases/kernel/syscalls/ioctl/ioctl10.c index b668c9e93889..d7e40f3c8643 100644 --- a/testcases/kernel/syscalls/ioctl/ioctl10.c +++ b/testcases/kernel/syscalls/ioctl/ioctl10.c @@ -35,7 +35,7 @@ struct map_entry { unsigned long vm_pgoff; unsigned int vm_major; unsigned int vm_minor; - unsigned long vm_inode; + uint64_t vm_inode; char vm_name[256]; unsigned int vm_flags; }; @@ -68,7 +68,7 @@ static void parse_maps_file(const char *filename, const char *keyword, struct ma while (fgets(line, sizeof(line), fp) != NULL) { if (fnmatch(keyword, line, 0) == 0) { - if (sscanf(line, "%lx-%lx %s %lx %x:%x %lu %s", + if (sscanf(line, "%lx-%lx %s %lx %x:%x %llu %s", &entry->vm_start, &entry->vm_end, entry->vm_flags_str, &entry->vm_pgoff, &entry->vm_major, &entry->vm_minor, &entry->vm_inode, entry->vm_name) < 7) --- base-commit: 534222c4f3908e9642f913399e37a66fdd266bbe change-id: 20260626-master-55d29494ba06 Best regards, -- Jeff Layton <[email protected]> -- Mailing list info: https://lists.linux.it/listinfo/ltp