summaryrefslogtreecommitdiff
path: root/testing/psmisc
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-02-04 23:14:50 +0000
committerroot <root@rshg054.dnsready.net>2012-02-04 23:14:50 +0000
commitcdc66cc7110e78bf1197f9effc70422114f9341b (patch)
tree26d88200b6a071ffe8e21b7022be19ade43d52e5 /testing/psmisc
parentde078a89b9e3a45b6b2e3f0c9d866962e5125ba3 (diff)
Sat Feb 4 23:14:50 UTC 2012
Diffstat (limited to 'testing/psmisc')
-rw-r--r--testing/psmisc/COMM_LEN-to-18.patch85
-rw-r--r--testing/psmisc/PKGBUILD27
2 files changed, 112 insertions, 0 deletions
diff --git a/testing/psmisc/COMM_LEN-to-18.patch b/testing/psmisc/COMM_LEN-to-18.patch
new file mode 100644
index 000000000..5cec62507
--- /dev/null
+++ b/testing/psmisc/COMM_LEN-to-18.patch
@@ -0,0 +1,85 @@
+From: Craig Small <csmall@users.sourceforge.net>
+Date: Fri, 27 Jan 2012 01:02:48 +0000 (+1100)
+Subject: Set COMM_LEN to 18 to include brackets in name
+X-Git-Url: http://psmisc.git.sourceforge.net/git/gitweb.cgi?p=psmisc%2Fpsmisc;a=commitdiff_plain;h=340f81524cb097d814fcf344a3743de17f988e3d
+
+Set COMM_LEN to 18 to include brackets in name
+
+Also use strncpy in case the command names grow.
+---
+
+diff --git a/src/comm.h b/src/comm.h
+index 956383d..2b780b0 100644
+--- a/src/comm.h
++++ b/src/comm.h
+@@ -1,18 +1,37 @@
+-/* comm.h - command name length definition */
+-
+-/* Copyright 1995 Werner Almesberger. See file COPYING for details. */
+-
++/*
++ * comm.h - command name length definition
++ *
++ * Copyright 1995 Werner Almesberger
++ * Copyright 2012 Craig Small <csmall@enc.com.au>
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
+
+ #ifndef COMM_H
+ #define COMM_H
+
+-#if 0 /* broken in 1.3.xx */
+-#include <linux/sched.h>
+-#define COMM_LEN sizeof(dummy.comm)
+-extern struct task_struct dummy;
+-#else
+-#define COMM_LEN 16 /* synchronize with size of comm in struct task_struct in
+- /usr/include/linux/sched.h */
++#ifdef HAVE_CONFIG_H
++#include <config.h>
+ #endif
+
++/*
++ * COMM_LEN should be the same size as TASK_COMM_LEN in the Linux source
++ * at include/linux/sched.h
++ * However, that doesn't include the brackets that may be in the field.
++ */
++#define COMM_LEN 18
++
+ #endif
+diff --git a/src/pstree.c b/src/pstree.c
+index 452f823..3129f76 100644
+--- a/src/pstree.c
++++ b/src/pstree.c
+@@ -264,7 +264,7 @@ static PROC *new_proc(const char *comm, pid_t pid, uid_t uid)
+ perror("malloc");
+ exit(1);
+ }
+- strcpy(new->comm, comm);
++ strncpy(new->comm, comm, COMM_LEN);
+ new->pid = pid;
+ new->uid = uid;
+ new->flags = 0;
+@@ -352,7 +352,7 @@ add_proc(const char *comm, pid_t pid, pid_t ppid, uid_t uid,
+ this = new_proc(comm, pid, uid);
+ #endif /*WITH_SELINUX */
+ else {
+- strcpy(this->comm, comm);
++ strncpy(this->comm, comm, COMM_LEN);
+ this->uid = uid;
+ }
+ if (args)
diff --git a/testing/psmisc/PKGBUILD b/testing/psmisc/PKGBUILD
new file mode 100644
index 000000000..eae984840
--- /dev/null
+++ b/testing/psmisc/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 148578 2012-02-03 23:11:21Z eric $
+# Maintainer: Eric BĂ©langer <eric@archlinux.org>
+
+pkgname=psmisc
+pkgver=22.15
+pkgrel=1
+pkgdesc="Miscellaneous procfs tools"
+arch=('i686' 'x86_64')
+url="http://psmisc.sourceforge.net/index.html"
+license=('GPL')
+groups=('base')
+depends=('ncurses')
+source=(http://downloads.sourceforge.net/psmisc/${pkgname}-${pkgver}.tar.gz COMM_LEN-to-18.patch)
+sha1sums=('06f507d889afab70ac7ff20fbd419ca2ffcf90c0'
+ '6f45338fc34e453bea5273691a0cf81ed3e20fb8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i ../COMM_LEN-to-18.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}