diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/boot/lib/libstand/net.c | 52 | ||||
-rw-r--r-- | usr/src/lib/gss_mechs/mech_krb5/krb5/krb/chpw.c | 3 | ||||
-rw-r--r-- | usr/src/lib/libvscan/Makefile | 2 | ||||
-rw-r--r-- | usr/src/uts/common/gssapi/mechs/krb5/krb5/krb/unparse.c | 2 | ||||
-rw-r--r-- | usr/src/uts/common/gssapi/mechs/krb5/mech/k5unseal.c | 1 |
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; |