Page MenuHomeFreeBSD

D20011.diff
No OneTemporary

D20011.diff

Index: head/sys/netinet6/ip6_id.c
===================================================================
--- head/sys/netinet6/ip6_id.c
+++ head/sys/netinet6/ip6_id.c
@@ -89,6 +89,7 @@
#include <sys/types.h>
#include <sys/param.h>
#include <sys/kernel.h>
+#include <sys/random.h>
#include <sys/socket.h>
#include <sys/libkern.h>
@@ -257,6 +258,16 @@
u_int32_t
ip6_randomflowlabel(void)
{
+
+ /*
+ * It's ok to emit zero flow labels early, before random is available
+ * (seeded). RFC 6437:
+ *
+ * "A Flow Label of zero is used to indicate packets that have not been
+ * labeled."
+ */
+ if (__predict_false(!is_random_seeded()))
+ return (0);
return randomid(&randomtab_20) & 0xfffff;
}

File Metadata

Mime Type
text/plain
Expires
Tue, Jun 23, 6:05 PM (9 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34253330
Default Alt Text
D20011.diff (708 B)

Event Timeline