]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Make sure we don't warn for libevent versions like 1.4.14b-stable
authorSebastian Hahn <sebastian@torproject.org>
Mon, 26 Jul 2010 04:40:44 +0000 (06:40 +0200)
committerroot <root@Rhun.(none)>
Mon, 26 Jul 2010 18:39:12 +0000 (20:39 +0200)
changes/bug1731 [new file with mode: 0644]
src/common/compat_libevent.c

diff --git a/changes/bug1731 b/changes/bug1731
new file mode 100644 (file)
index 0000000..6d484e3
--- /dev/null
@@ -0,0 +1,5 @@
+  o Minor bugfixes:
+    - Our libevent version parsing code couldn't handle versions like
+      1.4.14b-stable and warned the user about using an old and broken
+      version of libevent. Treat 1.4.14b-stable like 1.4.14-stable when
+      parsing the version. Fixes bug 1731; bugfix on 0.2.2.1-alpha.
index 5cdd687cf0247469c4a9f8b6ce95b88002c2fe0c..140b6552d1a21156693d6fe29f540fb5474192a6 100644 (file)
@@ -229,13 +229,15 @@ static le_version_t
 tor_decode_libevent_version(const char *v)
 {
   unsigned major, minor, patchlevel;
-  char c, extra;
+  char c, e, extra;
   int fields;
 
-  /* Try the new preferred "1.4.11-stable" format. */
-  fields = sscanf(v, "%u.%u.%u%c", &major, &minor, &patchlevel, &c);
+  /* Try the new preferred "1.4.11-stable" format.
+   * Also accept "1.4.14b-stable". */
+  fields = sscanf(v, "%u.%u.%u%c%c", &major, &minor, &patchlevel, &c, &e);
   if (fields == 3 ||
-      (fields == 4 && (c == '-' || c == '_'))) {
+      ((fields == 4 || fields == 5 ) && (c == '-' || c == '_')) ||
+      (fields == 5 && TOR_ISALPHA(c) && (e == '-' || e == '_'))) {
     return V(major,minor,patchlevel);
   }