author | Leibo Wang <Leibo.Wang@Sun.COM> |
Wed, 11 Dec 2013 18:51:23 -0800 | |
changeset 1594 | 7302abf31ae0 |
permissions | -rw-r--r-- |
1594
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
1 |
This patch fixed segfault when supplying multiple options like '-f' for iftop. |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
2 |
The fixing has been integrated into open iftop-1.0 pre-release version. We can |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
3 |
see the fixing log here: |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
4 |
http://www.ex-parrot.com/~pdw/iftop/cvs/iftop/ChangeLog |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
5 |
|
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
6 |
--- cfgfile.c.orig 2013-12-02 00:37:09.851645000 -0800 |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
7 |
+++ cfgfile.c 2013-12-02 00:31:53.734822000 -0800 |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
8 |
@@ -230,8 +230,13 @@ |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
9 |
stringmap S; |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
10 |
|
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
11 |
S = stringmap_find(config, directive); |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
12 |
- if (S) stringmap_delete_free(S); |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
13 |
- stringmap_insert(config, directive, item_ptr(xstrdup(s))); |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
14 |
+ if (S) { |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
15 |
+ xfree(S->d.v); |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
16 |
+ S->d = item_ptr(xstrdup(s)); |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
17 |
+ } |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
18 |
+ else { |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
19 |
+ stringmap_insert(config, directive, item_ptr(xstrdup(s))); |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
20 |
+ } |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
21 |
} |
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
22 |
|
7302abf31ae0
17347731 iftop core dumps when using more than one -f option
Leibo Wang <Leibo.Wang@Sun.COM>
parents:
diff
changeset
|
23 |
int read_config(char *file, int whinge_on_error) { |