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 806d978ba6debb946af3f47b8703a5b2a9f2f9b2..12521a089aa79e2bd2bca474c01523d7478a7468 100644
(file)
--- a/
lttng-kernel-version.h
+++ b/
lttng-kernel-version.h
@@
-40,19
+40,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
@@
-67,11
+70,11
@@
/* Ubuntu */
#define LTTNG_UBUNTU_KERNEL_VERSION(a, b, c, d) \
/* Ubuntu */
#define LTTNG_UBUNTU_KERNEL_VERSION(a, b, c, d) \
- (((LTTNG_KERNEL_VERSION(a, b, c)) <<
8
) + (d))
+ (((LTTNG_KERNEL_VERSION(a, b, c)) <<
16
) + (d))
#ifdef UTS_UBUNTU_RELEASE_ABI
#define LTTNG_UBUNTU_VERSION_CODE \
#ifdef UTS_UBUNTU_RELEASE_ABI
#define LTTNG_UBUNTU_VERSION_CODE \
- ((LTTNG_LINUX_VERSION_CODE <<
8
) + UTS_UBUNTU_RELEASE_ABI)
+ ((LTTNG_LINUX_VERSION_CODE <<
16
) + UTS_UBUNTU_RELEASE_ABI)
#else
#define LTTNG_UBUNTU_VERSION_CODE 0
#endif
#else
#define LTTNG_UBUNTU_VERSION_CODE 0
#endif
@@
-162,11
+165,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.030801 seconds
and
4
git commands to generate.