From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([69.77.167.62] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1LHez2-0006Fp-BM for garchives@archives.gentoo.org; Tue, 30 Dec 2008 13:50:09 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id BAA79E026F; Tue, 30 Dec 2008 13:50:06 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 6FF27E026F for ; Tue, 30 Dec 2008 13:50:06 +0000 (UTC) Received: from stork.gentoo.org (stork.gentoo.org [64.127.104.133]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTP id E041464352 for ; Tue, 30 Dec 2008 13:50:05 +0000 (UTC) Received: from vapier by stork.gentoo.org with local (Exim 4.69) (envelope-from ) id 1LHeyz-0002gV-1g for gentoo-commits@lists.gentoo.org; Tue, 30 Dec 2008 13:50:05 +0000 From: "Mike Frysinger (vapier)" To: gentoo-commits@lists.gentoo.org Reply-To: gentoo-dev@lists.gentoo.org, vapier@gentoo.org Subject: [gentoo-commits] gentoo-projects commit in pax-utils: pspax.c X-VCS-Repository: gentoo-projects X-VCS-Files: pspax.c X-VCS-Directories: pax-utils X-VCS-Committer: vapier X-VCS-Committer-Name: Mike Frysinger Content-Type: text/plain; charset=utf8 Message-Id: Sender: Mike Frysinger Date: Tue, 30 Dec 2008 13:50:05 +0000 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: b799f6af-9e63-4fc7-ad9e-781e0dd14101 X-Archives-Hash: 47c66ea7c0799fedc89deb5ede621371 vapier 08/12/30 13:50:05 Modified: pspax.c Log: cleanup pspax code a bit Revision Changes Path 1.43 pax-utils/pspax.c file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/psp= ax.c?rev=3D1.43&view=3Dmarkup plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/psp= ax.c?rev=3D1.43&content-type=3Dtext/plain diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/psp= ax.c?r1=3D1.42&r2=3D1.43 Index: pspax.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /var/cvsroot/gentoo-projects/pax-utils/pspax.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- pspax.c 30 Dec 2008 13:13:15 -0000 1.42 +++ pspax.c 30 Dec 2008 13:50:04 -0000 1.43 @@ -12,7 +12,7 @@ * cc -o pspax pspax.c -DWANT_SYSCAP -lcap */ =20 -static const char *rcsid =3D "$Id: pspax.c,v 1.42 2008/12/30 13:13:15 va= pier Exp $"; +static const char *rcsid =3D "$Id: pspax.c,v 1.43 2008/12/30 13:50:04 va= pier Exp $"; const char * const argv0 =3D "pspax"; =20 #include "paxinc.h" @@ -41,35 +41,38 @@ static uid_t show_uid =3D -1; static gid_t show_gid =3D -1; =20 +static FILE *proc_fopen(pid_t pid, const char *file) +{ + char path[__PAX_UTILS_PATH_MAX]; + snprintf(path, sizeof(path), PROC_DIR "/%u/%s", pid, file); + path[sizeof(path) - 1] =3D '\0'; + return fopen(path, "r"); +} + static char *get_proc_name(pid_t pid) { FILE *fp; - static char str[__PAX_UTILS_PATH_MAX]; - memset(&str, 0, sizeof(str)); + static char str[BUFSIZ]; =20 - snprintf(str, sizeof(str), PROC_DIR "/%u/stat", pid); - if ((fp =3D fopen(str, "r")) =3D=3D NULL) + if ((fp =3D proc_fopen(pid, "stat")) =3D=3D NULL) return NULL; =20 - memset(&str, 0, sizeof(str)); - fscanf(fp, "%*d %s.16", str); if (*str) { str[strlen(str) - 1] =3D '\0'; str[16] =3D 0; } fclose(fp); + return (str+1); } =20 static int get_proc_maps(pid_t pid) { - static char str[__PAX_UTILS_PATH_MAX]; FILE *fp; + static char str[BUFSIZ]; =20 - snprintf(str, sizeof(str), PROC_DIR "/%u/maps", pid); - - if ((fp =3D fopen(str, "r")) =3D=3D NULL) + if ((fp =3D proc_fopen(pid, "maps")) =3D=3D NULL) return -1; =20 while (fgets(str, sizeof(str), fp)) { @@ -96,17 +99,16 @@ } } fclose(fp); + return 0; } =20 static int print_executable_mappings(pid_t pid) { - static char str[__PAX_UTILS_PATH_MAX]; FILE *fp; + static char str[BUFSIZ]; =20 - snprintf(str, sizeof(str), PROC_DIR "/%u/maps", pid); - - if ((fp =3D fopen(str, "r")) =3D=3D NULL) + if ((fp =3D proc_fopen(pid, "maps")) =3D=3D NULL) return -1; =20 while (fgets(str, sizeof(str), fp)) { @@ -131,6 +133,7 @@ } } fclose(fp); + return 0; } =20 @@ -147,13 +150,14 @@ { struct stat st; struct passwd *pwd; - static char str[__PAX_UTILS_PATH_MAX]; + char path[__PAX_UTILS_PATH_MAX]; =20 - snprintf(str, sizeof(str), PROC_DIR "/%u/stat", pid); + snprintf(path, sizeof(path), PROC_DIR "/%u/stat", pid); =20 - if (stat(str, &st) !=3D -1) + if (stat(path, &st) !=3D -1) if ((pwd =3D getpwuid(st.st_uid)) !=3D NULL) return pwd; + return NULL; } =20 @@ -161,10 +165,9 @@ { FILE *fp; size_t len; - static char str[__PAX_UTILS_PATH_MAX]; + static char str[BUFSIZ]; =20 - snprintf(str, sizeof(str), PROC_DIR "/%u/status", pid); - if ((fp =3D fopen(str, "r")) =3D=3D NULL) + if ((fp =3D proc_fopen(pid, "status")) =3D=3D NULL) return NULL; =20 len =3D strlen(name); @@ -178,6 +181,7 @@ } } fclose(fp); + return NULL; } =20 @@ -185,18 +189,16 @@ { FILE *fp; char *p; - char str[32]; static char buf[BUFSIZ]; =20 - memset(buf, 0, sizeof(buf)); - - snprintf(str, sizeof(str), PROC_DIR "/%u/attr/current", pid); - if ((fp =3D fopen(str, "r")) =3D=3D NULL) + if ((fp =3D proc_fopen(pid, "attr/current")) =3D=3D NULL) return NULL; + if (fgets(buf, sizeof(buf), fp) !=3D NULL) if ((p =3D strchr(buf, '\n')) !=3D NULL) *p =3D 0; fclose(fp); + return buf; } =20 @@ -204,31 +206,29 @@ { FILE *fp; char *p; - char str[32]; static char buf[BUFSIZ]; =20 - memset(buf, 0, sizeof(buf)); - - snprintf(str, sizeof(str), PROC_DIR "/%u/ipaddr", pid); - if ((fp =3D fopen(str, "r")) =3D=3D NULL) + if ((fp =3D proc_fopen(pid, "ipaddr")) =3D=3D NULL) return NULL; + if (fgets(buf, sizeof(buf), fp) !=3D NULL) if ((p =3D strchr(buf, '\n')) !=3D NULL) *p =3D 0; fclose(fp); + return buf; } =20 static const char *get_proc_type(pid_t pid) { char fname[32]; - elfobj *elf =3D NULL; - char *ret =3D NULL; + elfobj *elf; + const char *ret; =20 snprintf(fname, sizeof(fname), PROC_DIR "/%u/exe", pid); if ((elf =3D readelf(fname)) =3D=3D NULL) - return ret; - ret =3D (char *)get_elfetype(elf); + return NULL; + ret =3D get_elfetype(elf); unreadelf(elf); return ret; } @@ -273,13 +273,13 @@ static const char *get_proc_phdr(pid_t pid) { char fname[32]; - elfobj *elf =3D NULL; - char *ret =3D NULL; + elfobj *elf; + const char *ret; =20 snprintf(fname, sizeof(fname), PROC_DIR "/%u/exe", pid); if ((elf =3D readelf(fname)) =3D=3D NULL) - return ret; - ret =3D (char *) scanelf_file_phdr(elf); + return NULL; + ret =3D scanelf_file_phdr(elf); unreadelf(elf); return ret; }