lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 27 Aug 2010 18:41:46 +0900
From:	Namhyung Kim <namhyung@...il.com>
To:	Roland McGrath <roland@...hat.com>,
	Oleg Nesterov <oleg@...hat.com>, Arnd Bergmann <arnd@...db.de>
Cc:	linux-kernel@...r.kernel.org
Subject: [RFC PATCH 00/43] ptrace cleanups

Hello,

This patchset tries to cleanup architecture independent/dependent part of
ptrace syscall. Specifically it changes prototype of sys_ptrace() to have
its arguments @addr and @data to be unsigned long. Since user space API of
ptrace() declares them as void pointers, and most of archs consider them
unsigned already in their arch_ptrace(), it would be no harmful to change
them from (signed) long into unsigned long, IMHO.

ptrace() code accesses user area using above arguments frequently, changing
them enables to drop unnecessary __force markup when casting them to __user
pointers because sparse allows it only in case of unsigned long. And some
duplicated/misused castings can be grouped into one place in favor of new
variables to cleanup code further. This was suggested by Arnd Bergmann and
comment from Christoph Hellwig was also helpful.

Although I couldn't test all archs, I hope it will not break anything.
Exceptional case will be "03/43 ptrace: change signature of arch_ptrace()"
commit since it changes prototype of arch_ptrace() in system header file.
It *will* break your build if it is applied alone, please use it with
your arch counterpart. The same goes vice versa, of course.

Any comments would be appreciated.
Thanks.


Namhyung Kim (43):
  ptrace: change signature of sys_ptrace() and friends
  ptrace: cleanup ptrace_request()
  ptrace: change signature of arch_ptrace()
  ptrace, x86: change signature of arch_ptrace()
  ptrace, x86: cleanup arch_ptrace()
  ptrace, alpha: change signature of arch_ptrace()
  ptrace, arm: change signature of arch_ptrace()
  ptrace, arm: cleanup arch_ptrace()
  ptrace, avr32: change signature of arch_ptrace()
  ptrace, avr32: cleanup arch_ptrace()
  ptrace, blackfin: change signature of arch_ptrace()
  ptrace, cris-v10: change signature of arch_ptrace()
  ptrace, cris-v32: change signature of arch_ptrace()
  ptrace, frv: change signature of arch_ptrace()
  ptrace, frv: cleanup arch_ptrace()
  ptrace, h8300: change signature of arch_ptrace()
  ptrace, h8300: cleanup arch_ptrace()
  ptrace, ia64: change signature of arch_ptrace()
  ptrace, m32r: change signature of arch_ptrace()
  ptrace, m32r: cleanup arch_ptrace()
  ptrace, m68k: change signature of arch_ptrace()
  ptrace, m68k: cleanup arch_ptrace()
  ptrace, m68knommu: change signature of arch_ptrace()
  ptrace, m68knommu: cleanup arch_ptrace()
  ptrace, microblaze: change signature of arch_ptrace()
  ptrace, mips: change signature of arch_ptrace()
  ptrace, mips: cleanup arch_ptrace()
  ptrace, mn10300: change signature of arch_ptrace()
  ptrace, mn10300: cleanup arch_ptrace()
  ptrace, parisc: change signature of arch_ptrace()
  ptrace, powerpc: change signature of arch_ptrace()
  ptrace, powerpc: cleanup arch_ptrace()
  ptrace, s390: change signature of arch_ptrace()
  ptrace, score: change signature of arch_ptrace()
  ptrace, sh: change signature of arch_ptrace()
  ptrace, sh: cleanup arch_ptrace()
  ptrace, sparc: change signature of arch_ptrace()
  ptrace, sparc: cleanup arch_ptrace()
  ptrace, tile: change signature of arch_ptrace()
  ptrace, um: change signature of arch_ptrace()
  ptrace, um: cleanup arch_ptrace()
  ptrace, xtensa: change signature of arch_ptrace()
  ptrace, xtensa: cleanup arch_ptrace()

 arch/alpha/kernel/ptrace.c         |    7 ++--
 arch/arm/kernel/ptrace.c           |   36 +++++++++++--------
 arch/avr32/kernel/ptrace.c         |   11 +++---
 arch/blackfin/kernel/ptrace.c      |   16 +++++----
 arch/cris/arch-v10/kernel/ptrace.c |   11 +++---
 arch/cris/arch-v32/kernel/ptrace.c |    7 ++--
 arch/frv/kernel/ptrace.c           |   32 ++++++++---------
 arch/h8300/kernel/ptrace.c         |   33 +++++++++--------
 arch/ia64/kernel/ptrace.c          |    3 +-
 arch/m32r/kernel/ptrace.c          |   11 +++---
 arch/m68k/kernel/ptrace.c          |   51 +++++++++++++-------------
 arch/m68knommu/kernel/ptrace.c     |   70 ++++++++++++++++++-----------------
 arch/microblaze/kernel/ptrace.c    |    7 ++--
 arch/mips/kernel/ptrace.c          |   26 +++++++------
 arch/mn10300/kernel/ptrace.c       |   20 +++++-----
 arch/parisc/kernel/ptrace.c        |   13 ++++---
 arch/powerpc/kernel/ptrace.c       |   70 +++++++++++++++++++----------------
 arch/s390/kernel/ptrace.c          |    3 +-
 arch/score/kernel/ptrace.c         |    7 ++--
 arch/sh/kernel/ptrace_32.c         |   51 ++++++++++++++------------
 arch/sh/kernel/ptrace_64.c         |   27 ++++++++------
 arch/sparc/kernel/ptrace_32.c      |   57 +++++++++++------------------
 arch/sparc/kernel/ptrace_64.c      |   15 ++++----
 arch/tile/kernel/ptrace.c          |   11 +++---
 arch/um/kernel/ptrace.c            |   26 +++++++-------
 arch/um/sys-i386/ptrace.c          |    4 +-
 arch/um/sys-x86_64/ptrace.c        |   11 +++---
 arch/x86/kernel/ptrace.c           |   23 +++++-------
 arch/xtensa/kernel/ptrace.c        |   14 ++++---
 include/linux/ptrace.h             |   12 ++++--
 include/linux/syscalls.h           |    3 +-
 kernel/ptrace.c                    |   29 +++++++++------
 32 files changed, 375 insertions(+), 342 deletions(-)

--
1.7.2.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ