]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/unix/sysv/linux/ptrace.c
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / ptrace.c
index e149d80477f978c8ab5d06cc13f77a716ded99b4..8705911ed95b7177125fe29b5747548315edb796 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1998,2000,2003,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -12,9 +12,8 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 #include <errno.h>
 #include <sys/types.h>
@@ -25,7 +24,6 @@
 
 #include <sysdep.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 long int
 ptrace (enum __ptrace_request request, ...)
@@ -44,79 +42,7 @@ ptrace (enum __ptrace_request request, ...)
   if (request > 0 && request < 4)
     data = &ret;
 
-#if __BOUNDED_POINTERS__
-  switch (request)
-    {
-    case PTRACE_PEEKTEXT:
-    case PTRACE_PEEKDATA:
-    case PTRACE_PEEKUSER:
-    case PTRACE_POKETEXT:
-    case PTRACE_POKEDATA:
-    case PTRACE_POKEUSER:
-      (void) CHECK_1 ((int *) addr);
-      (void) CHECK_1 ((int *) data);
-      break;
-
-    case PTRACE_GETREGS:
-    case PTRACE_SETREGS:
-#ifdef __i386__
-      (void) CHECK_1 ((struct user_regs_struct *) data);
-#else
-      /* We don't know the size of data, so the best we can do is ensure
-        that `data' is valid for at least one word.  */
-      (void) CHECK_1 ((int *) data);
-#endif
-      break;
-
-    case PTRACE_GETFPREGS:
-    case PTRACE_SETFPREGS:
-#ifdef __i386__
-      (void) CHECK_1 ((struct user_fpregs_struct *) data);
-#else
-      /* We don't know the size of data, so the best we can do is ensure
-        that `data' is valid for at least one word.  */
-      (void) CHECK_1 ((int *) data);
-#endif
-      break;
-
-    case PTRACE_GETFPXREGS:
-    case PTRACE_SETFPXREGS:
-#ifdef __i386__
-      (void) CHECK_1 ((struct user_fpxregs_struct *) data);
-#else
-      /* We don't know the size of data, so the best we can do is ensure
-        that `data' is valid for at least one word.  */
-      (void) CHECK_1 ((int *) data);
-#endif
-      break;
-
-    case PTRACE_GETSIGINFO:
-    case PTRACE_SETSIGINFO:
-      (void) CHECK_1 ((siginfo_t *) data);
-      break;
-
-    case PTRACE_GETEVENTMSG:
-      (void) CHECK_1 ((unsigned long *) data);
-      break;
-
-    case PTRACE_SETOPTIONS:
-      (void) CHECK_1 ((long *) data);
-      break;
-
-    case PTRACE_TRACEME:
-    case PTRACE_CONT:
-    case PTRACE_KILL:
-    case PTRACE_SINGLESTEP:
-    case PTRACE_ATTACH:
-    case PTRACE_DETACH:
-    case PTRACE_SYSCALL:
-      /* Neither `data' nor `addr' needs any checks.  */
-      break;
-    };
-#endif
-
-  res = INLINE_SYSCALL (ptrace, 4, request, pid,
-                       __ptrvalue (addr), __ptrvalue (data));
+  res = INLINE_SYSCALL (ptrace, 4, request, pid, addr, data);
   if (res >= 0 && request > 0 && request < 4)
     {
       __set_errno (0);