projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: RT_PATCH_VERSION is close to overflow
[lttng-modules.git]
/
lttng-kernel-version.h
diff --git
a/lttng-kernel-version.h
b/lttng-kernel-version.h
index 8a870ce1e49dc2e9b8284a32b1b73f22a6911f73..53657c92f18bc80d5a97eb12c1fa697070b379ef 100644
(file)
--- a/
lttng-kernel-version.h
+++ b/
lttng-kernel-version.h
@@
-52,19
+52,22
@@
* of LINUX_VERSION_CODE from the kernel headers and allocate 16bits.
* Otherwise, keep using the version code from the headers to minimise the
* behavior change and avoid regressions.
* of LINUX_VERSION_CODE from the kernel headers and allocate 16bits.
* Otherwise, keep using the version code from the headers to minimise the
* behavior change and avoid regressions.
+ *
+ * Cast the result to uint64_t to prevent overflowing when we append distro
+ * specific version information.
*/
#if (LTTNG_LINUX_PATCH >= 256)
#define LTTNG_KERNEL_VERSION(a, b, c) \
*/
#if (LTTNG_LINUX_PATCH >= 256)
#define LTTNG_KERNEL_VERSION(a, b, c) \
- (((
a) << 24) + ((b) << 16) + (c)
)
+ (((
(a) << 24) + ((b) << 16) + (c)) * 1ULL
)
#define LTTNG_LINUX_VERSION_CODE \
LTTNG_KERNEL_VERSION(LTTNG_LINUX_MAJOR, LTTNG_LINUX_MINOR, LTTNG_LINUX_PATCH)
#else
#define LTTNG_LINUX_VERSION_CODE \
LTTNG_KERNEL_VERSION(LTTNG_LINUX_MAJOR, LTTNG_LINUX_MINOR, LTTNG_LINUX_PATCH)
#else
-#define LTTNG_KERNEL_VERSION(a, b, c)
KERNEL_VERSION(a, b, c
)
-#define LTTNG_LINUX_VERSION_CODE
LINUX_VERSION_CODE
+#define LTTNG_KERNEL_VERSION(a, b, c)
(KERNEL_VERSION(a, b, c) * 1ULL
)
+#define LTTNG_LINUX_VERSION_CODE
(LINUX_VERSION_CODE * 1ULL)
#endif
#endif
@@
-180,11
+183,11
@@
/* RT patch */
#define LTTNG_RT_KERNEL_VERSION(a, b, c, d) \
/* RT patch */
#define LTTNG_RT_KERNEL_VERSION(a, b, c, d) \
- (((LTTNG_KERNEL_VERSION(a, b, c)) <<
8
) + (d))
+ (((LTTNG_KERNEL_VERSION(a, b, c)) <<
16
) + (d))
#ifdef RT_PATCH_VERSION
#define LTTNG_RT_VERSION_CODE \
#ifdef RT_PATCH_VERSION
#define LTTNG_RT_VERSION_CODE \
- ((LTTNG_LINUX_VERSION_CODE <<
8
) + RT_PATCH_VERSION)
+ ((LTTNG_LINUX_VERSION_CODE <<
16
) + RT_PATCH_VERSION)
#else
#define LTTNG_RT_VERSION_CODE 0
#endif
#else
#define LTTNG_RT_VERSION_CODE 0
#endif
This page took
0.053938 seconds
and
4
git commands to generate.