Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Apr 2009 12:49:50 +0000 (UTC)
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r190797 - stable/7/usr.sbin/jexec
Message-ID:  <200904071249.n37CnoC4008739@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ru
Date: Tue Apr  7 12:49:50 2009
New Revision: 190797
URL: http://svn.freebsd.org/changeset/base/190797

Log:
  MFC:
  
  - Add missing include.
  
  - Style: size_t can't be negative.
  
  - Don't exit with a zero status code when no jails are configured
    on a system.
  
  - Style: simplify some code constructs.
  
  - If a single jail cannot be found, let the caller print a proper
    diagnostic message.
  
  Approved by:	re (kib)

Modified:
  stable/7/usr.sbin/jexec/   (props changed)
  stable/7/usr.sbin/jexec/jexec.c

Modified: stable/7/usr.sbin/jexec/jexec.c
==============================================================================
--- stable/7/usr.sbin/jexec/jexec.c	Tue Apr  7 12:39:55 2009	(r190796)
+++ stable/7/usr.sbin/jexec/jexec.c	Tue Apr  7 12:49:50 2009	(r190797)
@@ -29,8 +29,10 @@
 
 #include <sys/param.h>
 #include <sys/jail.h>
+#include <sys/sysctl.h>
 
 #include <netinet/in.h>
+
 #include <err.h>
 #include <errno.h>
 #include <login_cap.h>
@@ -117,8 +119,8 @@ lookup_jail(int jid, char *jailname)
 
 	j = len;
 	for (i = 0; i < 4; i++) {
-		if (len <= 0)
-			exit(0);	
+		if (len == 0)
+			return (-1);
 		p = q = malloc(len);
 		if (p == NULL)
 			err(1, "malloc()");
@@ -172,27 +174,21 @@ lookup_jail(int jid, char *jailname)
 			/* NOTREACHED */
 			break;
 		}
-		/* Possible match. */
-		if (id > 0) {
-			/* Do we have a jail ID to match as well? */
-			if (jid > 0) {
-				if (jid == id) {
-					xid = id;
-					count++;
-				}
-			} else {
-				xid = id;
-				count++;
-			}
+		/* Possible match; see if we have a jail ID to match as well.  */
+		if (id > 0 && (jid <= 0 || id == jid)) {
+			xid = id;
+			count++;
 		}
 	}
 
 	free(p);
 
-	if (count != 1)
+	if (count == 1)
+		return (xid);
+	else if (count > 1)
 		errx(1, "Could not uniquely identify the jail.");
-
-	return (xid);
+	else
+		return (-1);
 }
 
 #define GET_USER_INFO do {						\



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904071249.n37CnoC4008739>