svn commit: r238064 - stable/8/usr.bin/killall

Konstantin Belousov kib at FreeBSD.org
Tue Jul 3 08:46:27 UTC 2012


Author: kib
Date: Tue Jul  3 08:46:26 2012
New Revision: 238064
URL: http://svn.freebsd.org/changeset/base/238064

Log:
  MFC r237844, r237845, r237846:
  Minor tweaks.

Modified:
  stable/8/usr.bin/killall/killall.c
Directory Properties:
  stable/8/usr.bin/killall/   (props changed)

Modified: stable/8/usr.bin/killall/killall.c
==============================================================================
--- stable/8/usr.bin/killall/killall.c	Tue Jul  3 08:42:48 2012	(r238063)
+++ stable/8/usr.bin/killall/killall.c	Tue Jul  3 08:46:26 2012	(r238064)
@@ -102,7 +102,7 @@ nosig(char *name)
 int
 main(int ac, char **av)
 {
-	struct kinfo_proc *procs = NULL, *newprocs;
+	struct kinfo_proc *procs, *newprocs;
 	struct stat	sb;
 	struct passwd	*pw;
 	regex_t		rgx;
@@ -285,9 +285,6 @@ main(int ac, char **av)
 	size = 0;
 	mib[0] = CTL_KERN;
 	mib[1] = KERN_PROC;
-	mib[2] = KERN_PROC_PROC;
-	mib[3] = 0;
-	miblen = 3;
 
 	if (user) {
 		mib[2] = eflag ? KERN_PROC_UID : KERN_PROC_RUID;
@@ -297,16 +294,20 @@ main(int ac, char **av)
 		mib[2] = KERN_PROC_TTY;
 		mib[3] = tdev;
 		miblen = 4;
+	} else {
+		mib[2] = KERN_PROC_PROC;
+		mib[3] = 0;
+		miblen = 3;
 	}
 
+	procs = NULL;
 	st = sysctl(mib, miblen, NULL, &size, NULL, 0);
 	do {
 		size += size / 10;
 		newprocs = realloc(procs, size);
-		if (newprocs == 0) {
-			if (procs)
-				free(procs);
-			errx(1, "could not reallocate memory");
+		if (newprocs == NULL) {
+			free(procs);
+			err(1, "could not reallocate memory");
 		}
 		procs = newprocs;
 		st = sysctl(mib, miblen, procs, &size, NULL, 0);
@@ -316,7 +317,7 @@ main(int ac, char **av)
 	if (size % sizeof(struct kinfo_proc) != 0) {
 		fprintf(stderr, "proc size mismatch (%zu total, %zu chunks)\n",
 			size, sizeof(struct kinfo_proc));
-		fprintf(stderr, "userland out of sync with kernel, recompile libkvm etc\n");
+		fprintf(stderr, "userland out of sync with kernel\n");
 		exit(1);
 	}
 	nprocs = size / sizeof(struct kinfo_proc);


More information about the svn-src-all mailing list