blob: dc6414d51eec70bce32648f6fc2502b282977bec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
diff --git a/src/lib/efrm/vi_resource_alloc.c b/src/lib/efrm/vi_resource_alloc.c
--- a/src/lib/efrm/vi_resource_alloc.c
+++ b/src/lib/efrm/vi_resource_alloc.c
@@ -1432,6 +1432,15 @@
qso->q_len_entries = n_q_entries;
qso->q_len_bytes = efrm_vi_q_bytes(virs, q_type, n_q_entries);
+
+ /* This value should always be positive, but if we don't check for this
+ * explicitly, some compilers will assume that undefined logarithms
+ * can be taken in get_order() and will generate code that won't link.
+ * See bug63982. */
+ EFRM_ASSERT(qso->q_len_bytes > 0);
+ if (qso->q_len_bytes <= 0)
+ return -EINVAL;
+
qso->q_len_page_order = get_order(qso->q_len_bytes);
return 0;
}
--- a/src/include/onload/version.h
+++ b/src/include/onload/version.h
@@ -29,7 +29,7 @@
#ifndef ONLOAD_VERSION
-# define ONLOAD_VERSION "201606"
+# define ONLOAD_VERSION "201606-patch63982"
#endif
#define ONLOAD_PRODUCT "OpenOnload"
|