Skip to content

Commit 84f6a9b

Browse files
authored
Merge pull request torvalds#332 from laijs/lkl/stackoverflow
fix stackoverflow in test_getdents64()
2 parents 311a4ee + 9045528 commit 84f6a9b

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

tools/lkl/tests/boot.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -599,18 +599,16 @@ static int test_getdents64(char *str, int len)
599599
ret = lkl_sys_getdents64(dir_fd, de, sizeof(buf));
600600

601601
wr = snprintf(str, len, "%d ", dir_fd);
602-
str += wr;
603-
len -= wr;
604602

605603
if (ret < 0)
606604
return TEST_FAILURE;
607605

608606
for (pos = buf; pos - buf < ret; pos += de->d_reclen) {
609607
de = (struct lkl_linux_dirent64 *)pos;
610608

611-
wr = snprintf(str, len, "%s ", de->d_name);
612-
str += wr;
613-
len -= wr;
609+
wr += snprintf(str + wr, len - wr, "%s ", de->d_name);
610+
if (wr >= len)
611+
break;
614612
}
615613

616614
return TEST_SUCCESS;

0 commit comments

Comments
 (0)