MFC: r241874

After r241858 (MFC'ed to stable/7 in r242287), remove the remainder of
FreeBSD ~4 support from mpt(4).
MFC: r241875

Remove support for using Giant for locking within mpt(4). Finer grained
locking has been working fine for ~5.5 years by now.
MFC: r241875

Remove support for using Giant for locking within mpt(4). Finer grained
locking has been working fine for ~5.5 years by now.
MFC r245459

  Satisfy the intent of kern/151564: [ciss] ciss(4) should increase
  CISS_MAX_LOGICAL to 107

  Submitter wanted to increase the number of logical disks supported by ciss(4)
  by simply raising the CISS_MAX_LOGICAL value even higher.  Instead, consult
  the documentation for the raid controller (OPENCISS) and poke the controller
  bits to ask it for how many logical/physical disks it can handle.

  Revert svn R242089 that raised CISS_MAX_LOGICAL to 64 for all controllers.

  For older controllers that don't support this mechanism, fallback to the old
  value of 16 logical disks.  Tested on P420, P410, P400 and 6i model ciss(4)
  controllers.

  This should will be MFC'd back to stable/9 stable/8 and stable/7 after the MFC
  period.
MFC r244122:
	Remove 'dangerous' instructions from the example make.conf.
	Clarify when and why these might be used and that this isn't a supported
	configuration.

PR:		docs/144488
Approved by:	cperciva (mentor, implicit)
MFC r243931:
	Avoid the creation of a temporary object by using the prefix operator
	for non-primitive types.

Approved by:	cperciva (mentor, implicit)
MFC r243930:
	Constify where possible

Approved by:	cperciva (mentor, implicit)
MFC r243758 (marcel):

In globextend() when the pathv vector cannot be (re-)allocated, don't
free and clear the gl_pathv pointer in the glob_t structure. Such
breaks the invariant of the glob_t structure, as stated in the comment
right in front of the globextend() function. If gl_pathv was non-NULL,
then gl_pathc was > 0. Making gl_pathv a NULL pointer without also
setting gl_pathc to 0 is wrong.

Since we otherwise don't free the memory associated with a glob_t in
error cases, it's unlikely that this change will cause a memory leak
that wasn't already there to begin with. Callers of glob(3) must
call globfree(3) irrespective of whether glob(3) returned an error
or not.

MFC r243759 (marcel):

In globextend(), take advantage of the fact that realloc(NULL, size) is
equivalent to malloc(size). This eliminates the conditional expression
used for calling either realloc() or malloc() when realloc() will do
all the time.
MFC r243779 (marcel):

Protect against DoS attacks, such as being described in CVE-2010-2632.
The changes were derived from what has been committed to NetBSD, with
modifications. These are:

1.  Preserve the existsing GLOB_LIMIT behaviour by including the number
    of matches to the set of parameters to limit.
2.  Change some of the limits to avoid impacting normal use cases:
    GLOB_LIMIT_STRING - change from 65536 to ARG_MAX so that glob(3)
        can still provide a full command line of expanded names.
    GLOB_LIMIT_STAT - change from 128 to 1024 for no other reason than
        that 128 feels too low (it's not a limit that impacts the
        behaviour of the test program listed in CVE-2010-2632).
    GLOB_LIMIT_PATH - change from 1024 to 65536 so that glob(3) can
        still provide a fill command line of expanded names.
3.  Protect against buffer overruns when we hit the GLOB_LIMIT_STAT or
    GLOB_LIMIT_READDIR limits. We append SEP and EOS to pathend in
    those cases. Return GLOB_ABORTED instead of GLOB_NOSPACE when we
    would otherwise overrun the buffer.

This change also modifies the existing behaviour of glob(3) in case
GLOB_LIMIT is specifies by limiting the *new* matches and not all
matches. This is an important distinction when GLOB_APPEND is set or
when the caller uses a non-zero gl_offs. Previously pre-existing
matches or the value of gl_offs would be counted in the number of
matches even though the man page states that glob(3) would return
GLOB_NOSPACE when gl_matchc or more matches were found.

The limits that cannot be circumvented are GLOB_LIMIT_STRING and
GLOB_LIMIT_PATH all others can be crossed by simply calling glob(3)
again and with GLOB_APPEND set.

The entire description above applies only when GLOB_LIMIT has been
specified of course. No limits apply when this flag isn't set!

Obtained from: Juniper Networks, Inc
MFH r246362: remove political propaganda
MFC r246860:

Fix undefined behaviour in usr.bin/mail/util.c.

Reported by:	deeptech71@gmail.com
MFC r246873:

In contrib/opie/opiekey.c, use the correct length to zero the secret.

Found by:	clang ToT
Reviewed by:	delphij
MFC r246874:

Fix two instances of undefined behaviour in contrib/nvi.

Found by:	clang ToT
Obtained from:	NetBSD
Reviewed by:	jh
MFC r246875:

Import change 40eebf235370b6fe6353784ccf01ab92eed062a5 from upstream wpa:

  From: Jouni Malinen <j@w1.fi>
  Date: Fri, 15 Jul 2011 13:42:06 +0300
  Subject: [PATCH] MD5: Fix clearing of temporary stack memory to use correct length

  sizeof of the structure instead of the pointer was supposed to be used
  here. Fix this to clear the full structure at the end of MD5Final().

Found by:	clang ToT
Reviewed by:	rpaulo
MFC r239672 (by rrs):
  This small change takes care of a race condition
  that can occur when both sides close at the same time.
  If that occurs, without this fix the connection enters
  FIN1 on both sides and they will forever send FIN|ACK at
  each other until the connection times out. This is because
  we stopped processing the FIN|ACK and thus did not advance
  the sequence and so never ACK'd each others FIN. This
  fix adjusts it so we *do* process the FIN properly and
  the race goes away ;-)

Approved by:	rrs
Approved by:	emaste (co-mentor)
MFC: Merge sendmail 8.14.6 errata issue
MFH r247014, r247050 and r247051.

Add a sample program that shows how a custom comparison function and
qsort(3) can work together to sort an array of integers.

PR:             docs/176197
Submitted by:   Fernando, fapesteguia at opensistemas.com
		Christoph Mallon, christoph.mallon at gmx.de
Approved by:    gjb (mentor), remko (mentor)
MFC r247334:

Correct a typo introduced in r153575, which gives inverted logic when
handling blocking semantics when seeding.

PR:		kern/143298
Submitted by:	James Juran <james juran baesystems com>
Reviewed by:	markm
MFC: r247632

- Complete r231621 (MFC'ed to stable/7 in r232094) by also blacklisting the
  bridge used by VMware for PCIe devices. While at it, update the comment
  now that we know that MSI-X doesn't work with ESXi 5.1 for Intel 82576
  either and the underlying issue is a bug in the MSI-X allocation code of
  the hypervisor.
  Reported by: Harald Schmalzbauer
- Make the nomatch table const.
MFC r247906:

The hashmask returned by hashinit() is a valid index in the returned hash array.
Fix a siftr(4) potential memory leak and INVARIANTS triggered kernel panic in
hashdestroy() by ensuring the last array index in the flow counter hash table is
flushed of entries.