[LTP] [PATCH] buffer overflow detected ***: dup201 terminated
Cyril Hrubis
chrubis@suse.cz
Tue Sep 10 13:57:44 CEST 2019
Hi!
> Issues related to this mail: https://github.com/linux-test-project/ltp/issues/570
You can just add "fixes: #570" instead somewhere in the patch text which
will close the issue automatically if the patch is included in the
repository.
> According to the bactrace in the issue description, we could easily find out that the problem is due to the codes in dup201.c line 80 and 142.
> As metan-cuw commented, the loop at line 142 is of no use and probablely is a leftover. So we could safely remove these codes.
>
> This patch does :
> 1). remove the leftover, and of course, the issue 570 will be eventually go over.
> 2). removed unused global variables.
>
> The patch goes as:
^
This is unnecessary.
And you are missing the signed-off-by line here, see:
https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html#developer-s-certificate-of-origin-1-1
> diff --git a/testcases/kernel/syscalls/dup2/dup201.c b/testcases/kernel/syscalls/dup2/dup201.c
> index 4507ac1..762ad86 100644
> --- a/testcases/kernel/syscalls/dup2/dup201.c
> +++ b/testcases/kernel/syscalls/dup2/dup201.c
> @@ -75,9 +75,6 @@ int maxfd;
> int goodfd = 5;
> int badfd = -1;
> int mystdout = 0;
> -int fd, fd1;
> -int mypid;
> -char fname[20];
>
>
> struct test_case_t {
> int *ofd;
> @@ -86,22 +83,19 @@ struct test_case_t {
> void (*setupfunc) ();
> } TC[] = {
> /* First fd argument is less than 0 - EBADF */
> - {
> - &badfd, &goodfd, EBADF, NULL},
> - /* First fd argument is getdtablesize() - EBADF */
> - {
> - &maxfd, &goodfd, EBADF, NULL},
> - /* Second fd argument is less than 0 - EBADF */
> - {
> - &mystdout, &badfd, EBADF, NULL},
> - /* Second fd argument is getdtablesize() - EBADF */
> - {
> -&mystdout, &maxfd, EBADF, NULL},};
> + {&badfd, &goodfd, EBADF, NULL},
> + /* First fd argument is getdtablesize() - EBADF */
> + {&maxfd, &goodfd, EBADF, NULL},
> + /* Second fd argument is less than 0 - EBADF */
> + {&mystdout, &badfd, EBADF, NULL},
> + /* Second fd argument is getdtablesize() - EBADF */
> + {&mystdout, &maxfd, EBADF, NULL},
> +};
>
>
> int main(int ac, char **av)
> {
> int lc;
> - int i, j;
> + int i;
>
>
> tst_parse_opts(ac, av, NULL, NULL);
>
>
> @@ -137,12 +131,6 @@ int main(int ac, char **av)
> strerror(TC[i].error));
> }
> }
> - /* cleanup things in case we are looping */
> - for (j = fd1; j < maxfd; j++) {
> - sprintf(fname, "dup201.%d.%d", j, mypid);
> - (void)close(j);
> - (void)unlink(fname);
> - }
> }
> cleanup();
>
>
> @@ -163,7 +151,6 @@ void setup(void)
>
>
> /* get some test specific values */
> maxfd = getdtablesize();
> - mypid = getpid();
> }
>
>
> /*
> @@ -172,6 +159,5 @@ void setup(void)
> */
> void cleanup(void)
> {
> -
> tst_rmdir();
> }
Otherwise the patch looks good.
--
Cyril Hrubis
chrubis@suse.cz
More information about the ltp
mailing list