diff options
author | Andreas Oberritter <obi@opendreambox.org> | 2012-05-05 17:47:23 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2012-05-05 17:47:23 +0200 |
commit | 556ac3633ce3e7bd51c93b78827ae3874d856257 (patch) | |
tree | a5380391b7dc43cfd5c390e709824f0ff8e5c0a4 /libbb | |
parent | 3da46c8163ecf14a02f8317d0b76b225eceaf28c (diff) | |
download | busybox-556ac3633ce3e7bd51c93b78827ae3874d856257.tar.gz |
get_linux_version_code: don't fail on Linux version strints like "3.0-foo"
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/kernel_version.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/libbb/kernel_version.c b/libbb/kernel_version.c index a168a1e4e..738ed022b 100644 --- a/libbb/kernel_version.c +++ b/libbb/kernel_version.c @@ -20,18 +20,15 @@ int FAST_FUNC get_linux_version_code(void) { struct utsname name; - char *s; + char *s, *t; int i, r; - if (uname(&name) == -1) { - bb_perror_msg("can't get system information"); - return 0; - } - + uname(&name); /* never fails */ s = name.release; r = 0; for (i = 0; i < 3; i++) { - r = r * 256 + atoi(strtok(s, ".")); + t = strtok(s, "."); + r = r * 256 + (t ? atoi(t) : 0); s = NULL; } return r; |