summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/boot/lib/libstand/net.c52
-rw-r--r--usr/src/lib/gss_mechs/mech_krb5/krb5/krb/chpw.c3
-rw-r--r--usr/src/lib/libvscan/Makefile2
-rw-r--r--usr/src/uts/common/gssapi/mechs/krb5/krb5/krb/unparse.c2
-rw-r--r--usr/src/uts/common/gssapi/mechs/krb5/mech/k5unseal.c1
5 files changed, 41 insertions, 19 deletions
diff --git a/usr/src/boot/lib/libstand/net.c b/usr/src/boot/lib/libstand/net.c
index d8d46c4ec4..7d775faf17 100644
--- a/usr/src/boot/lib/libstand/net.c
+++ b/usr/src/boot/lib/libstand/net.c
@@ -57,6 +57,20 @@
#include "net.h"
/*
+ * Maximum wait time for sending and receiving before we give up and timeout.
+ * If set to 0, operations will eventually timeout completely, but send/recv
+ * timeouts must progress exponentially from MINTMO to MAXTMO before final
+ * timeout is hit.
+ */
+#ifndef MAXWAIT
+#define MAXWAIT 0 /* seconds */
+#endif
+
+#if MAXWAIT < 0
+#error MAXWAIT must not be a negative number
+#endif
+
+/*
* Send a packet and wait for a reply, with exponential backoff.
*
* The send routine must return the actual number of bytes written,
@@ -76,6 +90,7 @@ sendrecv(struct iodesc *d,
{
ssize_t cc;
time_t t, tmo, tlast;
+ time_t tref;
long tleft;
#ifdef NET_DEBUG
@@ -86,12 +101,17 @@ sendrecv(struct iodesc *d,
tmo = MINTMO;
tlast = 0;
tleft = 0;
+ tref = getsecs();
t = getsecs();
for (;;) {
+ if (MAXWAIT > 0 && (getsecs() - tref) >= MAXWAIT) {
+ errno = ETIMEDOUT;
+ return (-1);
+ }
if (tleft <= 0) {
if (tmo >= MAXTMO) {
errno = ETIMEDOUT;
- return -1;
+ return (-1);
}
cc = (*sproc)(d, sbuf, ssize);
if (cc != -1 && cc < ssize)
@@ -134,11 +154,11 @@ sendrecv(struct iodesc *d,
n_long
inet_addr(char *cp)
{
- u_long val;
+ unsigned long val;
int n;
char c;
- u_int parts[4];
- u_int *pp = parts;
+ unsigned int parts[4];
+ unsigned int *pp = parts;
for (;;) {
/*
@@ -204,7 +224,7 @@ inet_addr(char *cp)
}
return (htonl(val));
- bad:
+bad:
return (htonl(INADDR_NONE));
}
@@ -219,12 +239,12 @@ char *
intoa(n_long addr)
{
char *cp;
- u_int byte;
+ unsigned int byte;
int n;
static char buf[17]; /* strlen(".255.255.255.255") + 1 */
addr = ntohl(addr);
- cp = &buf[sizeof buf];
+ cp = &buf[sizeof (buf)];
*--cp = '\0';
n = 4;
@@ -250,33 +270,33 @@ number(char *s, int *n)
{
for (*n = 0; isdigit(*s); s++)
*n = (*n * 10) + *s - '0';
- return s;
+ return (s);
}
n_long
ip_convertaddr(char *p)
{
-#define IP_ANYADDR 0
+#define IP_ANYADDR 0
n_long addr = 0, n;
- if (p == (char *)0 || *p == '\0')
- return IP_ANYADDR;
+ if (p == NULL || *p == '\0')
+ return (IP_ANYADDR);
p = number(p, &n);
addr |= (n << 24) & 0xff000000;
if (*p == '\0' || *p++ != '.')
- return IP_ANYADDR;
+ return (IP_ANYADDR);
p = number(p, &n);
addr |= (n << 16) & 0xff0000;
if (*p == '\0' || *p++ != '.')
- return IP_ANYADDR;
+ return (IP_ANYADDR);
p = number(p, &n);
addr |= (n << 8) & 0xff00;
if (*p == '\0' || *p++ != '.')
- return IP_ANYADDR;
+ return (IP_ANYADDR);
p = number(p, &n);
addr |= n & 0xff;
if (*p != '\0')
- return IP_ANYADDR;
+ return (IP_ANYADDR);
- return htonl(addr);
+ return (htonl(addr));
}
diff --git a/usr/src/lib/gss_mechs/mech_krb5/krb5/krb/chpw.c b/usr/src/lib/gss_mechs/mech_krb5/krb5/krb/chpw.c
index a97c39dbe3..ba7f562324 100644
--- a/usr/src/lib/gss_mechs/mech_krb5/krb5/krb/chpw.c
+++ b/usr/src/lib/gss_mechs/mech_krb5/krb5/krb/chpw.c
@@ -546,7 +546,8 @@ krb5int_setpw_result_code_string( krb5_context context, int result_code, const c
*code_string = "Initial password required";
break;
case 0:
- *code_string = "Success";
+ *code_string = "Success";
+ break;
default:
*code_string = "Password change failed";
break;
diff --git a/usr/src/lib/libvscan/Makefile b/usr/src/lib/libvscan/Makefile
index 1212cc6a73..1cae18ed12 100644
--- a/usr/src/lib/libvscan/Makefile
+++ b/usr/src/lib/libvscan/Makefile
@@ -22,7 +22,7 @@
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-# ident "%Z%%M% %I% %E% SMI"
+# Copyright 2018, Joyent, Inc.
#
include ../Makefile.lib
diff --git a/usr/src/uts/common/gssapi/mechs/krb5/krb5/krb/unparse.c b/usr/src/uts/common/gssapi/mechs/krb5/krb5/krb/unparse.c
index edec335118..99eb271a6e 100644
--- a/usr/src/uts/common/gssapi/mechs/krb5/krb5/krb/unparse.c
+++ b/usr/src/uts/common/gssapi/mechs/krb5/krb5/krb/unparse.c
@@ -132,7 +132,7 @@ copy_component_quoting(char *dest, const krb5_data *src, int flags)
*q++ = *cp;
break;
}
- /*LINTED*/
+ /* FALLTHROUGH */
case COMPONENT_SEP:
case '\\':
*q++ = '\\';
diff --git a/usr/src/uts/common/gssapi/mechs/krb5/mech/k5unseal.c b/usr/src/uts/common/gssapi/mechs/krb5/mech/k5unseal.c
index 339a209b29..44bc227cba 100644
--- a/usr/src/uts/common/gssapi/mechs/krb5/mech/k5unseal.c
+++ b/usr/src/uts/common/gssapi/mechs/krb5/mech/k5unseal.c
@@ -500,6 +500,7 @@ kg_unseal_v1(context, minor_status, ctx, ptr, bodysize, message_buffer,
code = memcmp(md5cksum.contents, ptr+14, 8);
/* Falls through to defective-token?? */
+ /* FALLTHROUGH */
default:
*minor_status = 0;