[init-ifupdown] netbase split to netbase and init-ifdown
[vuplus_openvuplus_3.0] / meta-openvuplus / recipes-core / busybox / busybox-1.19.4 / 0006-get_linux_version_code-don-t-fail-on-3.0-foo.patch
1 From c011ab2fb52c2ee03aa9544b0d242683ee4362e1 Mon Sep 17 00:00:00 2001
2 From: Andreas Oberritter <obi@opendreambox.org>
3 Date: Fri, 27 Apr 2012 01:40:25 +0200
4 Subject: [PATCH 06/10] get_linux_version_code: don't fail on 3.0-foo
5
6 Fixes segmentation fault in mount (nfs):
7
8  #0 __GI_____strtol_l_internal (nptr=0x0, endptr=0x0, base=10, group=<optimized out>, loc=0x77f6f3c8) at strtol_l.c:298
9  #1 __GI_strtol (nptr=<optimized out>, endptr=<optimized out>, base=<optimized out>) at strtol.c:110
10  #2 get_linux_version_code () at libbb/kernel_version.c:34
11  #3 find_kernel_nfs_mount_version () at util-linux/mount.c:979
12
13 Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
14 ---
15  libbb/kernel_version.c |    5 +++--
16  1 file changed, 3 insertions(+), 2 deletions(-)
17
18 diff --git a/libbb/kernel_version.c b/libbb/kernel_version.c
19 index a168a1e..12f1146 100644
20 --- a/libbb/kernel_version.c
21 +++ b/libbb/kernel_version.c
22 @@ -20,7 +20,7 @@
23  int FAST_FUNC get_linux_version_code(void)
24  {
25         struct utsname name;
26 -       char *s;
27 +       char *s, *t;
28         int i, r;
29  
30         if (uname(&name) == -1) {
31 @@ -31,7 +31,8 @@ int FAST_FUNC get_linux_version_code(void)
32         s = name.release;
33         r = 0;
34         for (i = 0; i < 3; i++) {
35 -               r = r * 256 + atoi(strtok(s, "."));
36 +               t = strtok(s, ".");
37 +               r = r * 256 + (t ? atoi(t) : 0);
38                 s = NULL;
39         }
40         return r;
41 -- 
42 1.7.10.4
43