> On 11. Feb 2020, at 19:18, Conrad Meyer <c...@freebsd.org> wrote:
> 
> Hi Michael,
> 
> On Tue, Feb 11, 2020 at 6:00 AM Michael Tuexen <tue...@freebsd.org> wrote:
>> 
>> Author: tuexen
>> Date: Tue Feb 11 14:00:27 2020
>> New Revision: 357761
>> URL: https://svnweb.freebsd.org/changeset/base/357761
>> 
>> Log:
>>  Use an int instead of a bool variable, since bool is not supported
>>  on all platforms the stack is running on in userland.
> 
> Maybe the platforms stuck in time before 1999 can be worked around
> with something trivial like:
> 
> #if __STDC_VERSION__ < 199901L
> # warn Really really consider getting a new compiler
> typedef unsigned char _Bool;
> # define bool _Bool
> # define true ((_Bool)1)
> # define false ((_Bool)0)
> #endif
Hi Conrad,

I can revert it and get it working in a different way. However, the
networking code uses ints for booleans in a lot of places. I wasn't
aware that we need to use bool now.
> 
> Rather than inflicting the 80s on FreeBSD tree code?  This commit
> seems like a step in the wrong direction and just for example,
> contravenes style(9).
> 
> SCTP is already one of the buggiest areas of the kernel, and it can't
> be touched by outsiders for fear of breaking compatibility with the
> purported myriad other platforms it is also ported to.  By transitive
> property, it also prevents modifying _any_ APIs SCTP consumes that
> happen to be implemented on other platforms.  This hamstrings the
Which API couldn't be changed because of SCTP? I don't remember that
I experienced such a discussion. I definitely never objected.
> kernel for what is obviously not functional code (throw a dart at a
> syzkaller report and better than 90% odds it's a SCTP panic), much
> less code a reasonable person would want to use in a
> security-sensitive context.
I'm not arguing that there are bugs. But most of the bug only show up
if you actually use SCTP. Regarding the 90% chance: Where do you get this from:
1. Looking at http://syzkaller.backtrace.io:8080 you will find a lot of
   traces which involves SCTP. However, a lot of them will include sendfile()
   in it's trace. If I remember it correctly, there was in the past a
   change to the internals of sendfile. After that change sendfile support
   for SCTP seems to be broken. Whether it was working before that change
   was discussed with different views (I wasn't involved since I never worked
   on sendfile). Another set of panics involve calling listen and connect on
   the same socket. This is as far as I know also not related to SCTP, but to
   a recent change in the listen code to improve performance.
   All other issues I'm interested to fix.
2. Looking at https://syzkaller.appspot.com/freebsd I also see traces which
   involve SCTP, but definitely not they are definitely not the majority.
3. Looking at http://212.201.121.91:10000 I also see SCTP related panic,
   but also TCP related ones.
> 
> If SCTP is intended to be a port from some legacy platform, perhaps it
> should live in ports rather than base?
The SCTP is not a port from some other platform, but the code is also
contained in a user land stack, which runs on a variety of platforms
(the ones you build Browsers for).
The code in the FreeBSD tree only has taken out some #ifdefed code, which
is used only on other platforms.

Best regards
Michael
> 
> Thanks,
> Conrad

_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to