[LTP] [PATCH] syscalls/dup2/dup201.c: buffer overflow detected ***: dup201 terminated

frequent frequentemail@126.com
Wed Sep 11 05:37:31 CEST 2019


From: Wu,Haiqiang <frequentemail@126.com>


fixes:#570


Signed-off-by: Wu,Haiqiang <frequentemail@126.com>




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();
 }

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20190911/e57e12b4/attachment.htm>


More information about the ltp mailing list