Page MenuHomeFreeBSD

D20011.id56494.diff
No OneTemporary

D20011.id56494.diff

Index: sys/netinet6/ip6_id.c
===================================================================
--- sys/netinet6/ip6_id.c
+++ 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>
@@ -258,5 +259,15 @@
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, Apr 21, 8:19 AM (6 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31875370
Default Alt Text
D20011.id56494.diff (682 B)

Event Timeline