[arch-commits] Commit in psmisc/trunk (COMM_LEN-to-18.patch PKGBUILD)

Eric Bélanger eric at archlinux.org
Fri Feb 3 23:10:56 UTC 2012


    Date: Friday, February 3, 2012 @ 18:10:55
  Author: eric
Revision: 148577

upgpkg: psmisc 22.15-1

Upstream update, Add patch to fix pstree crash

Added:
  psmisc/trunk/COMM_LEN-to-18.patch
Modified:
  psmisc/trunk/PKGBUILD

----------------------+
 COMM_LEN-to-18.patch |   85 +++++++++++++++++++++++++++++++++++++++++++++++++
 PKGBUILD             |   11 +++---
 2 files changed, 91 insertions(+), 5 deletions(-)

Added: COMM_LEN-to-18.patch
===================================================================
--- COMM_LEN-to-18.patch	                        (rev 0)
+++ COMM_LEN-to-18.patch	2012-02-03 23:10:55 UTC (rev 148577)
@@ -0,0 +1,85 @@
+From: Craig Small <csmall at 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 at 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)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2012-02-03 22:05:16 UTC (rev 148576)
+++ PKGBUILD	2012-02-03 23:10:55 UTC (rev 148577)
@@ -2,20 +2,21 @@
 # Maintainer: Eric Bélanger <eric at archlinux.org>
 
 pkgname=psmisc
-pkgver=22.14
+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=('glibc' 'ncurses')
-source=(http://downloads.sourceforge.net/psmisc/${pkgname}-${pkgver}.tar.gz)
-md5sums=('ba3f4e971895c92bba7770d81c981503')
-sha1sums=('dc6fc0ec131c11796d01512bbd80089719b04a66')
+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
 }




More information about the arch-commits mailing list