summaryrefslogtreecommitdiff
path: root/usr/src/cmd
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2018-04-09 12:44:29 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2018-04-09 12:44:29 +0000
commit8d41f5f3d16da9a63c6c2f929235e8a3655430c4 (patch)
treef4689dc157ff6ede4e2822bc86ce55d10f5121c4 /usr/src/cmd
parent3843bb9b187919e79faf125f8ef4d7979a130486 (diff)
parent806bd0e6ec0ff89513e6d6b17764a2e69a7df640 (diff)
downloadillumos-joyent-8d41f5f3d16da9a63c6c2f929235e8a3655430c4.tar.gz
[illumos-gate merge]
commit 806bd0e6ec0ff89513e6d6b17764a2e69a7df640 1575 untangle libmlrpc from SMB server (fix bldenv) commit a9f62b1aced7d116b939867a588cdf126118cd9a 9364 genunix: this statement may fall through commit 8b8bfb2aded317f67d8aedbe4a6972c3a791418b 9382 libmvect: error: 'x0' may be used uninitialized commit f7c0c795f2c4c2b54557114ac4a889b7b14ae45c 9381 policykit: this statement may fall through commit 586c519ffb95ef510154cdd7c57797c0fecb0434 9380 fm: this statement may fall through commit 0d7511a18ccdbeec76a22dca77ab35dd4f1fb685 9378 refer: this statement may fall through commit 9807e1309317ed174757f9890d2b220d4fdeb3cf 9373 tbl: this statement may fall through commit 11d7f7ff53e371b4622d8a4e0dd50b0e96ac0475 9372 tcpd: this statement may fall through commit 430755dfc4bf5c4bf947290d2613a6c25d85ea0f 9371 poolstat: this statement may fall through commit 2c6689756b3cd3e79a883e8f28f2d8cb163126c7 9369 tr: this statement may fall through commit a8337c624edfd3b96a53349fa26a00e19eed2e6c 9368 tsol: this statement may fall through commit db0449058042a16790d8282ecffb1a0beedaf0ea 9363 savecore: this statement may fall through commit 3a05eee78b080a8a26d90f39b9efb85c9db8b5e8 9360 pam_modules/tsol_acct: comparison between pointer and zero character constant commit c6fd1145b87ccd4df6215e2921524782a538d285 9359 uts: audio this statement may fall through commit d38b7101435717bb1c3c2f90a7c5ad2f9c3c4dc4 9352 netstat(1M) should be able to print IPv4 networks in CIDR form commit e89016e771abb6871cb08b54316d9a1a826a9193 9044 Need support for mpt_sas tri-mode parts 9045 Clean up mpt_sas compiler warnings 9046 mptsas_handle_topo_change can return without its locks held 9047 workaround SAS3408 firmware issue commit 7d815089a43a963b49eaddf97e514194ec29805b 3328 smbutil view does't work with Win2008 and later commit 3299f39fdcbdab4be7a9c70daa3873f2b78a398d 1575 untangle libmlrpc from SMB server commit f78cdc34af236a6199dd9e21376f4a46348c0d56 9112 Improve allocation performance on high-end systems
Diffstat (limited to 'usr/src/cmd')
-rw-r--r--usr/src/cmd/cmd-inet/usr.bin/netstat/netstat.c97
-rw-r--r--usr/src/cmd/fm/eversholt/eftinfo/common/eftinfo.c3
-rw-r--r--usr/src/cmd/fm/eversholt/esc/common/escmain.c3
-rw-r--r--usr/src/cmd/fm/modules/common/eversholt/eval.c1
-rw-r--r--usr/src/cmd/policykit/polkit-is-privileged.c1
-rw-r--r--usr/src/cmd/pools/poolstat/poolstat.c2
-rw-r--r--usr/src/cmd/refer/refer2.c4
-rw-r--r--usr/src/cmd/tbl/t4.c6
-rw-r--r--usr/src/cmd/tbl/t6.c4
-rw-r--r--usr/src/cmd/tbl/t7.c1
-rw-r--r--usr/src/cmd/tbl/t8.c3
-rw-r--r--usr/src/cmd/tcpd/safe_finger.c10
-rw-r--r--usr/src/cmd/tr/tr.c2
-rw-r--r--usr/src/cmd/tsol/updatehome/updatehome.c1
14 files changed, 106 insertions, 32 deletions
diff --git a/usr/src/cmd/cmd-inet/usr.bin/netstat/netstat.c b/usr/src/cmd/cmd-inet/usr.bin/netstat/netstat.c
index 2607c5cde6..475e915b2e 100644
--- a/usr/src/cmd/cmd-inet/usr.bin/netstat/netstat.c
+++ b/usr/src/cmd/cmd-inet/usr.bin/netstat/netstat.c
@@ -23,7 +23,7 @@
* Copyright (c) 1990 Mentat Inc.
* netstat.c 2.2, last change 9/9/91
* MROUTING Revision 3.5
- * Copyright (c) 2017, Joyent, Inc.
+ * Copyright 2018, Joyent, Inc.
*/
/*
@@ -236,6 +236,7 @@ static void fatal(int errcode, char *str1, ...);
static boolean_t Aflag = B_FALSE; /* All sockets/ifs/rtng-tbls */
+static boolean_t CIDRflag = B_FALSE; /* CIDR for IPv4 -i/-r addrs */
static boolean_t Dflag = B_FALSE; /* DCE info */
static boolean_t Iflag = B_FALSE; /* IP Traffic Interfaces */
static boolean_t Mflag = B_FALSE; /* STREAMS Memory Statistics */
@@ -446,12 +447,16 @@ main(int argc, char **argv)
(void) setlocale(LC_ALL, "");
(void) textdomain(TEXT_DOMAIN);
- while ((c = getopt(argc, argv, "adimnrspMgvxf:P:I:DRT:")) != -1) {
+ while ((c = getopt(argc, argv, "acdimnrspMgvxf:P:I:DRT:")) != -1) {
switch ((char)c) {
case 'a': /* all connections */
Aflag = B_TRUE;
break;
+ case 'c':
+ CIDRflag = B_TRUE;
+ break;
+
case 'd': /* DCE info */
Dflag = B_TRUE;
IFLAGMOD(Iflag_only, 1, 0); /* see macro def'n */
@@ -3340,7 +3345,7 @@ if_report_ip4(mib2_ipAddrEntry_t *ap,
boolean_t ksp_not_null)
{
- char abuf[MAXHOSTNAMELEN + 1];
+ char abuf[MAXHOSTNAMELEN + 4]; /* Include /<num> for CIDR-printing. */
char dstbuf[MAXHOSTNAMELEN + 1];
if (ksp_not_null) {
@@ -4439,7 +4444,7 @@ static boolean_t
ire_report_item_v4(const mib2_ipRouteEntry_t *rp, boolean_t first,
const sec_attr_list_t *attrs)
{
- char dstbuf[MAXHOSTNAMELEN + 1];
+ char dstbuf[MAXHOSTNAMELEN + 4]; /* + "/<num>" */
char maskbuf[MAXHOSTNAMELEN + 1];
char gwbuf[MAXHOSTNAMELEN + 1];
char ifname[LIFNAMSIZ + 1];
@@ -5557,7 +5562,7 @@ mrt_report(mib_item_t *item)
struct mfcctl *mfccp;
int numvifs = 0;
int nmfc = 0;
- char abuf[MAXHOSTNAMELEN + 1];
+ char abuf[MAXHOSTNAMELEN + 4]; /* Include CIDR /<num>. */
if (!(family_selected(AF_INET)))
return;
@@ -5976,6 +5981,57 @@ pr_ap6(const in6_addr_t *addr, uint_t port, char *proto,
}
/*
+ * Returns -2 to indicate a discontiguous mask. Otherwise returns between
+ * 0 and 32.
+ */
+static int
+v4_cidr_len(uint_t mask)
+{
+ int rc = 0;
+ int i;
+
+ for (i = 0; i < 32; i++) {
+ if (mask & 0x1)
+ rc++;
+ else if (rc > 0)
+ return (-2); /* Discontiguous IPv4 netmask. */
+
+ mask >>= 1;
+ }
+
+ return (rc);
+}
+
+static void
+append_v4_cidr_len(char *dst, uint_t dstlen, int prefixlen)
+{
+ char *prefixptr;
+
+ /* 4 bytes leaves room for '/' 'N' 'N' '\0' */
+ if (strlen(dst) <= dstlen - 4) {
+ prefixptr = dst + strlen(dst);
+ } else {
+ /*
+ * Cut off last 3 chars of very-long DNS name. All callers
+ * should give us enough room, but name services COULD give us
+ * a way-too-big name (see above).
+ */
+ prefixptr = dst + strlen(dst) - 3;
+ }
+ /* At this point "prefixptr" is guaranteed to point to 4 bytes. */
+
+ if (prefixlen >= 0) {
+ if (prefixlen > 32) /* Shouldn't happen, but... */
+ prefixlen = 32;
+ (void) snprintf(prefixptr, 4, "/%d", prefixlen);
+ } else if (prefixlen == -2) {
+ /* "/NM" == Noncontiguous Mask. */
+ (void) strcat(prefixptr, "/NM");
+ }
+ /* Else print nothing extra. */
+}
+
+/*
* Return the name of the network whose address is given. The address is
* assumed to be that of a net or subnet, not a host.
*/
@@ -5988,13 +6044,17 @@ pr_net(uint_t addr, uint_t mask, char *dst, uint_t dstlen)
uint_t net;
int subnetshift;
int error_num;
+ int prefixlen = -1; /* -1 == Don't print prefix! */
+ /* -2 == Noncontiguous mask... */
if (addr == INADDR_ANY && mask == INADDR_ANY) {
- (void) strncpy(dst, "default", dstlen);
- dst[dstlen - 1] = 0;
+ (void) strlcpy(dst, "default", dstlen);
return (dst);
}
+ if (CIDRflag)
+ prefixlen = v4_cidr_len(ntohl(mask));
+
if (!Nflag && addr) {
if (mask == 0) {
if (IN_CLASSA(addr)) {
@@ -6016,6 +6076,8 @@ pr_net(uint_t addr, uint_t mask, char *dst, uint_t dstlen)
while (addr & ~mask)
/* compiler doesn't sign extend! */
mask = (mask | ((int)mask >> subnetshift));
+ if (CIDRflag)
+ prefixlen = v4_cidr_len(mask);
}
net = addr & mask;
while ((mask & 1) == 0)
@@ -6038,11 +6100,13 @@ pr_net(uint_t addr, uint_t mask, char *dst, uint_t dstlen)
}
}
if (cp != NULL) {
- (void) strncpy(dst, cp, dstlen);
- dst[dstlen - 1] = 0;
+ (void) strlcpy(dst, cp, dstlen);
} else {
(void) inet_ntop(AF_INET, (char *)&addr, dst, dstlen);
}
+
+ append_v4_cidr_len(dst, dstlen, prefixlen);
+
if (hp != NULL)
freehostent(hp);
return (dst);
@@ -6064,15 +6128,19 @@ pr_netaddr(uint_t addr, uint_t mask, char *dst, uint_t dstlen)
struct in_addr in;
int error_num;
uint_t nbo_addr = addr; /* network byte order */
+ int prefixlen = -1; /* -1 == Don't print prefix! */
+ /* -2 == Noncontiguous mask... */
addr = ntohl(addr);
mask = ntohl(mask);
if (addr == INADDR_ANY && mask == INADDR_ANY) {
- (void) strncpy(dst, "default", dstlen);
- dst[dstlen - 1] = 0;
+ (void) strlcpy(dst, "default", dstlen);
return (dst);
}
+ if (CIDRflag)
+ prefixlen = v4_cidr_len(mask);
+
/* Figure out network portion of address (with host portion = 0) */
if (addr) {
/* Try figuring out mask if unknown (all 0s). */
@@ -6096,6 +6164,8 @@ pr_netaddr(uint_t addr, uint_t mask, char *dst, uint_t dstlen)
while (addr & ~mask)
/* compiler doesn't sign extend! */
mask = (mask | ((int)mask >> subnetshift));
+ if (CIDRflag)
+ prefixlen = v4_cidr_len(mask);
}
net = netshifted = addr & mask;
while ((mask & 1) == 0)
@@ -6124,8 +6194,8 @@ pr_netaddr(uint_t addr, uint_t mask, char *dst, uint_t dstlen)
}
if (cp != NULL) {
- (void) strncpy(dst, cp, dstlen);
- dst[dstlen - 1] = 0;
+ (void) strlcpy(dst, cp, dstlen);
+ append_v4_cidr_len(dst, dstlen, prefixlen);
if (hp != NULL)
freehostent(hp);
return (dst);
@@ -6138,6 +6208,7 @@ pr_netaddr(uint_t addr, uint_t mask, char *dst, uint_t dstlen)
in.s_addr = htonl(net);
(void) inet_ntop(AF_INET, (char *)&in, dst, dstlen);
+ append_v4_cidr_len(dst, dstlen, prefixlen);
if (hp != NULL)
freehostent(hp);
return (dst);
diff --git a/usr/src/cmd/fm/eversholt/eftinfo/common/eftinfo.c b/usr/src/cmd/fm/eversholt/eftinfo/common/eftinfo.c
index 68332725d6..03f06dfae7 100644
--- a/usr/src/cmd/fm/eversholt/eftinfo/common/eftinfo.c
+++ b/usr/src/cmd/fm/eversholt/eftinfo/common/eftinfo.c
@@ -29,8 +29,6 @@
* modules is driven by this file.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <stdio.h>
#include <string.h>
#ifdef sun
@@ -161,6 +159,7 @@ main(int argc, char *argv[])
VERSION_MAJOR, VERSION_MINOR);
out(O_DIE|O_USAGE, "%s\n%s", Usage, Help);
/*NOTREACHED*/
+ break;
case 'p':
pflag++;
diff --git a/usr/src/cmd/fm/eversholt/esc/common/escmain.c b/usr/src/cmd/fm/eversholt/esc/common/escmain.c
index eec47214ba..8b68098fc5 100644
--- a/usr/src/cmd/fm/eversholt/esc/common/escmain.c
+++ b/usr/src/cmd/fm/eversholt/esc/common/escmain.c
@@ -29,8 +29,6 @@
* modules is driven by this file.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <stdio.h>
#include <string.h>
#ifdef sun
@@ -165,6 +163,7 @@ main(int argc, char *argv[])
VERSION_MAJOR, VERSION_MINOR);
out(O_DIE|O_USAGE, "%s\n%s", Usage, Help);
/*NOTREACHED*/
+ break;
case 'o':
outfile = optarg;
diff --git a/usr/src/cmd/fm/modules/common/eversholt/eval.c b/usr/src/cmd/fm/modules/common/eversholt/eval.c
index 8e05ae0bc1..a3c47f91dc 100644
--- a/usr/src/cmd/fm/modules/common/eversholt/eval.c
+++ b/usr/src/cmd/fm/modules/common/eversholt/eval.c
@@ -1698,6 +1698,7 @@ eval_expr(struct node *np, struct lut *ex, struct node *events[],
out(O_ALTFP|O_DIE, "eval_expr: wrong context for operation %s",
ptree_nodetype2str(np->t));
/*NOTREACHED*/
+ break;
case T_NE:
if (!eval_expr(np->u.expr.left, ex, events, globals, croot,
diff --git a/usr/src/cmd/policykit/polkit-is-privileged.c b/usr/src/cmd/policykit/polkit-is-privileged.c
index 85116cf3d0..b1a2006a95 100644
--- a/usr/src/cmd/policykit/polkit-is-privileged.c
+++ b/usr/src/cmd/policykit/polkit-is-privileged.c
@@ -181,6 +181,7 @@ main (int argc, char *argv[])
case LIBPOLKIT_RESULT_NOT_PRIVILEGED:
g_print ("Not privileged.\n");
+ goto out;
case LIBPOLKIT_RESULT_NO_SUCH_PRIVILEGE:
g_print ("No such privilege '%s'.\n", privilege);
diff --git a/usr/src/cmd/pools/poolstat/poolstat.c b/usr/src/cmd/pools/poolstat/poolstat.c
index b52b68427f..a809a7fd45 100644
--- a/usr/src/cmd/pools/poolstat/poolstat.c
+++ b/usr/src/cmd/pools/poolstat/poolstat.c
@@ -160,6 +160,8 @@ static void sa_update(statistic_bag_t *, int);
/* statistics printing function */
static void prt_pool_stats(poolstat_list_element_t *);
+static void usage(void) __NORETURN;
+
static void
usage(void)
{
diff --git a/usr/src/cmd/refer/refer2.c b/usr/src/cmd/refer/refer2.c
index f6fe088d3c..f8605e227b 100644
--- a/usr/src/cmd/refer/refer2.c
+++ b/usr/src/cmd/refer/refer2.c
@@ -12,8 +12,6 @@
* specifies the terms and conditions for redistribution.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include "refer..c"
#include <locale.h>
#define NFLD 30
@@ -137,6 +135,8 @@ again:
while (*p != '\n')
p++;
*++p = 0;
+ /* FALLTHROUGH */
+
case 1:
if (endpush)
if (nr = chkdup(answer)) {
diff --git a/usr/src/cmd/tbl/t4.c b/usr/src/cmd/tbl/t4.c
index 262ff12ca2..e2cec8e533 100644
--- a/usr/src/cmd/tbl/t4.c
+++ b/usr/src/cmd/tbl/t4.c
@@ -13,8 +13,6 @@
* specifies the terms and conditions for redistribution.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/* t4.c: read table specification */
# include "t..c"
int oncol;
@@ -62,10 +60,12 @@ while (c=get1char())
default:
if (c != tab)
error(gettext("bad table specification character"));
+ /* FALLTHROUGH */
case ' ': /* note this is also case tab */
continue;
case '\n':
if(sawchar==0) continue;
+ /* FALLTHROUGH */
case ',':
case '.': /* end of table specification */
ncol = max(ncol, icol);
@@ -96,7 +96,9 @@ while (c=get1char())
continue;
case 'C': case 'S': case 'R': case 'N': case 'L': case 'A':
c += ('a'-'A');
+ /* FALLTHROUGH */
case '_': if (c=='_') c= '-';
+ /* FALLTHROUGH */
case '=': case '-':
case '^':
case 'c': case 's': case 'n': case 'r': case 'l': case 'a':
diff --git a/usr/src/cmd/tbl/t6.c b/usr/src/cmd/tbl/t6.c
index e862b71de1..db4d2ae3b3 100644
--- a/usr/src/cmd/tbl/t6.c
+++ b/usr/src/cmd/tbl/t6.c
@@ -13,8 +13,6 @@
* specifies the terms and conditions for redistribution.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/* t6.c: compute tab stops */
# define tx(a) (a>(char *)0 && a<(char *)128)
# include "t..c"
@@ -58,6 +56,7 @@ for(icol=0; icol <ncol; icol++)
doubled[icol]=1;
fprintf(tabout, ".if \\n(%c->\\n(%d .nr %d \\n(%c-\n",s,S2,S2,s);
}
+ /* FALLTHROUGH */
case 'n':
if (table[ilin][icol].rcol!=0)
{
@@ -78,6 +77,7 @@ for(icol=0; icol <ncol; icol++)
}
continue;
}
+ /* FALLTHROUGH */
case 'r':
case 'c':
case 'l':
diff --git a/usr/src/cmd/tbl/t7.c b/usr/src/cmd/tbl/t7.c
index 5cdd9fc316..d1327eb89f 100644
--- a/usr/src/cmd/tbl/t7.c
+++ b/usr/src/cmd/tbl/t7.c
@@ -62,6 +62,7 @@ for(c=0; c<ncol; c++)
if (table[ldata][c].rcol)
if (lused[c]) /*Zero field width*/
fprintf(tabout, "\\n(%du ",c+CMID);
+ /* FALLTHROUGH */
case 'c':
case 'l':
case 'r':
diff --git a/usr/src/cmd/tbl/t8.c b/usr/src/cmd/tbl/t8.c
index 0b05b43b4f..8d859622e2 100644
--- a/usr/src/cmd/tbl/t8.c
+++ b/usr/src/cmd/tbl/t8.c
@@ -12,8 +12,6 @@
* specifies the terms and conditions for redistribution.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/* t8.c: write out one line of output table */
# include "t..c"
# include <locale.h>
@@ -173,6 +171,7 @@ for(c=0; c<ncol; c++)
form=1;
break;
}
+ /* FALLTHROUGH */
case 'c':
form=3; break;
case 'r':
diff --git a/usr/src/cmd/tcpd/safe_finger.c b/usr/src/cmd/tcpd/safe_finger.c
index be41d9bc0f..fcf4a22084 100644
--- a/usr/src/cmd/tcpd/safe_finger.c
+++ b/usr/src/cmd/tcpd/safe_finger.c
@@ -14,16 +14,13 @@
* Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
*/
-#ifndef lint
-static char sccsid[] = "@(#) safe_finger.c 1.4 94/12/28 17:42:41";
-#endif
-
/* System libraries */
#include <sys/types.h>
#include <sys/stat.h>
#include <signal.h>
#include <stdio.h>
+#include <stdlib.h>
#include <ctype.h>
#include <pwd.h>
@@ -40,6 +37,7 @@ char path[] = "PATH=/bin:/usr/bin:/usr/ucb:/usr/bsd:/etc:/usr/etc:/usr/sbin";
#define UNPRIV_NAME "nobody" /* Preferred privilege level */
#define UNPRIV_UGID 32767 /* Default uid and gid */
+void perror_exit(char *text) __NORETURN;
int finger_pid;
void cleanup(sig)
@@ -136,8 +134,8 @@ char **argv;
/* perror_exit - report system error text and terminate */
-void perror_exit(text)
-char *text;
+void
+perror_exit(char *text)
{
perror(text);
exit(1);
diff --git a/usr/src/cmd/tr/tr.c b/usr/src/cmd/tr/tr.c
index 4627e590a6..49a8ccb1a8 100644
--- a/usr/src/cmd/tr/tr.c
+++ b/usr/src/cmd/tr/tr.c
@@ -52,7 +52,7 @@ STR s1 = { STRING1, NORMAL, 0, OOBCH, 0, { 0, OOBCH }, NULL, NULL };
STR s2 = { STRING2, NORMAL, 0, OOBCH, 0, { 0, OOBCH }, NULL, NULL };
static struct cset *setup(char *, STR *, int, int);
-static void usage(void);
+static void usage(void) __NORETURN;
static wint_t
cmap_lookup(struct cmap *cm, wint_t from)
diff --git a/usr/src/cmd/tsol/updatehome/updatehome.c b/usr/src/cmd/tsol/updatehome/updatehome.c
index 45225fc7e8..9cb43dce04 100644
--- a/usr/src/cmd/tsol/updatehome/updatehome.c
+++ b/usr/src/cmd/tsol/updatehome/updatehome.c
@@ -139,6 +139,7 @@ main(int argc, char **argv)
case '?': /* switch error */
(void) fprintf(stderr, gettext("Bad option -%c.\n"),
(char)optopt);
+ /* FALLTHROUGH */
default:
(void) fprintf(stderr, gettext("usage: %s [-cirs].\n"),