Home | History | Annotate | Download | only in netinet
History log of /src/sys/netinet/sctp_input.c
RevisionDateAuthorComments
 1.19  11-Jul-2025  andvar Fix various typos, mainly in comments and log/error messages.
 1.18  05-Jul-2024  rin sys: Drop redundant NULL check before m_freem(9)

m_freem(9) safely has accepted NULL argument at least since 4.2BSD:
https://www.tuhs.org/cgi-bin/utree.pl?file=4.2BSD/usr/src/sys/sys/uipc_mbuf.c

Compile-tested on amd64/ALL.

Suggested by knakahara@
 1.17  02-Feb-2024  andvar fix various typos in comments.
 1.16  08-Apr-2022  andvar s/postion/position/
 1.15  19-Sep-2021  andvar fix various typos in comments, messages and documentation.
 1.14  28-May-2019  msaitoh s/recieve/receive/
 1.13  24-Feb-2019  kamil Add missing FALLTHROUGH in sctp_input.c

Requested by GCC NetBSD/i386 kUBSan KCOC build.
 1.12  12-Feb-2019  rjs Add some fallthrough annotations.
 1.11  14-Sep-2018  maxv Use non-variadic function pointer in protosw::pr_input.
 1.10  03-Sep-2018  riastradh Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int. The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER! Some subsystems have

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX. Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate. But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all. (Who knows, maybe in some cases integer
truncation is actually intended!)
 1.9  01-May-2018  maxv branches: 1.9.2;
Remove now unused net_osdep.h includes, the other BSDs did the same.
 1.8  26-Feb-2018  maxv branches: 1.8.2;
Dedup: merge ipsec4_in_reject and ipsec6_in_reject into ipsec_in_reject.
While here fix misleading comment.

ok ozaki-r@
 1.7  27-Jun-2017  rjs branches: 1.7.4;
Check outgoing cookie size before accessing any contents.

Spotted in FreeBSD by maya.
 1.6  23-Jun-2017  rjs Make arguments match debug message.
 1.5  20-Apr-2017  ozaki-r Fix build of kernel with SCTP
 1.4  20-Apr-2017  ozaki-r Remove unnecessary NULL checks for inp_socket and in6p_socket

They cannot be NULL except for programming errors.
 1.3  10-Jun-2016  ozaki-r branches: 1.3.2; 1.3.4;
Avoid storing a pointer of an interface in a mbuf

Having a pointer of an interface in a mbuf isn't safe if we remove big
kernel locks; an interface object (ifnet) can be destroyed anytime in any
packet processing and accessing such object via a pointer is racy. Instead
we have to get an object from the interface collection (ifindex2ifnet) via
an interface index (if_index) that is stored to a mbuf instead of an
pointer.

The change provides two APIs: m_{get,put}_rcvif_psref that use psref(9)
for sleep-able critical sections and m_{get,put}_rcvif that use
pserialize(9) for other critical sections. The change also adds another
API called m_get_rcvif_NOMPSAFE, that is NOT MP-safe and for transition
moratorium, i.e., it is intended to be used for places where are not
planned to be MP-ified soon.

The change adds some overhead due to psref to performance sensitive paths,
however the overhead is not serious, 2% down at worst.

Proposed on tech-kern and tech-net.
 1.2  25-Apr-2016  rjs Fix build when IPSEC enabled.
 1.1  13-Oct-2015  rjs branches: 1.1.2;
Add core networking support for SCTP.
 1.1.2.5  28-Aug-2017  skrll Sync with HEAD
 1.1.2.4  09-Jul-2016  skrll Sync with HEAD
 1.1.2.3  29-May-2016  skrll Sync with HEAD
 1.1.2.2  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.1.2.1  13-Oct-2015  skrll file sctp_input.c was added on branch nick-nhusb on 2015-12-27 12:10:07 +0000
 1.3.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.3.2.1  26-Apr-2017  pgoyette Sync with HEAD
 1.7.4.2  03-Dec-2017  jdolecek update from HEAD
 1.7.4.1  27-Jun-2017  jdolecek file sctp_input.c was added on branch tls-maxphys on 2017-12-03 11:39:04 +0000
 1.8.2.3  30-Sep-2018  pgoyette Ssync with HEAD
 1.8.2.2  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.8.2.1  02-May-2018  pgoyette Synch with HEAD
 1.9.2.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed