aboutsummaryrefslogtreecommitdiff
path: root/libbb/kernel_version.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/kernel_version.c')
-rw-r--r--libbb/kernel_version.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/libbb/kernel_version.c b/libbb/kernel_version.c
index 7769a091b..6bb32ce5f 100644
--- a/libbb/kernel_version.c
+++ b/libbb/kernel_version.c
@@ -19,15 +19,17 @@ int FAST_FUNC get_linux_version_code(void)
19{ 19{
20 struct utsname name; 20 struct utsname name;
21 char *t; 21 char *t;
22 int i, r; 22 int r;
23 23
24 uname(&name); /* never fails */ 24 uname(&name); /* never fails */
25 t = name.release; 25 t = name.release - 1;
26 r = 0; 26 r = 1;
27 for (i = 0; i < 3; i++) { 27 do {
28 t = strtok(t, "."); 28 r <<= 8;
29 r = r * 256 + (t ? atoi(t) : 0); 29 if (t) {
30 t = NULL; 30 r += atoi(++t);
31 } 31 t = strchr(t, '.');
32 return r; 32 }
33 } while (r < 0x1000000);
34 return r - 0x1000000;
33} 35}