Hello community,

here is the log from the commit of package tor for openSUSE:Factory checked in 
at 2013-12-30 10:46:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tor (Old)
 and      /work/SRC/openSUSE:Factory/.tor.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tor"

Changes:
--------
--- /work/SRC/openSUSE:Factory/tor/tor.changes  2013-12-16 07:15:01.000000000 
+0100
+++ /work/SRC/openSUSE:Factory/.tor.new/tor.changes     2013-12-30 
10:46:56.000000000 +0100
@@ -1,0 +2,37 @@
+Fri Dec 27 20:55:26 UTC 2013 - andreas.stie...@gmx.de
+
+- tor 0.2.4.20
+  fixes potentially poor random number generation for users who 
+  1) use OpenSSL 1.0.0 or later, 
+  2) set "HardwareAccel 1" in their torrc file, 
+  3) have "Sandy Bridge" or "Ivy Bridge" Intel processors
+  and 
+  4) have no state file in their DataDirectory (as would happen on
+  first start). 
+  Users who generated relay or hidden service identity keys in such
+  a situation should discard them and generate new ones.
+  No 2 is not the default configuration for openSUSE.
+  This release also fixes a logic error that caused Tor clients to build
+  many more preemptive circuits than they actually need.
+- Major bugfixes:
+  - Do not allow OpenSSL engines to replace the PRNG, even when
+    HardwareAccel is set. The only default builtin PRNG engine uses
+    the Intel RDRAND instruction to replace the entire PRNG, and
+    ignores all attempts to seed it with more entropy. That's
+    cryptographically stupid: the right response to a new alleged
+    entropy source is never to discard all previously used entropy
+    sources. Fixes bug 10402; works around behavior introduced in
+    OpenSSL 1.0.0.
+  - Fix assertion failure when AutomapHostsOnResolve yields an IPv6
+    address.
+  - Avoid launching spurious extra circuits when a stream is pending.
+    This fixes a bug where any circuit that _wasn't_ unusable for new
+    streams would be treated as if it were, causing extra circuits to
+    be launched.
+- Minor bugfixes:
+  - Avoid a crash bug when starting with a corrupted microdescriptor
+    cache file.
+  - If we fail to dump a previously cached microdescriptor to disk, avoid
+    freeing duplicate data later on.
+
+-------------------------------------------------------------------

Old:
----
  tor-0.2.4.19.tar.gz
  tor-0.2.4.19.tar.gz.asc

New:
----
  tor-0.2.4.20.tar.gz
  tor-0.2.4.20.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ tor.spec ++++++
--- /var/tmp/diff_new_pack.jl3hSf/_old  2013-12-30 10:46:57.000000000 +0100
+++ /var/tmp/diff_new_pack.jl3hSf/_new  2013-12-30 10:46:57.000000000 +0100
@@ -19,7 +19,7 @@
 %define with_bufferevents 0%{?suse_version} > 1220
 
 Name:           tor
-Version:        0.2.4.19
+Version:        0.2.4.20
 Release:        0
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Summary:        Anonymizing overlay network for TCP (The onion router)

++++++ tor-0.2.4.19.tar.gz -> tor-0.2.4.20.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/ChangeLog new/tor-0.2.4.20/ChangeLog
--- old/tor-0.2.4.19/ChangeLog  2013-12-10 23:08:26.000000000 +0100
+++ new/tor-0.2.4.20/ChangeLog  2013-12-23 06:35:55.000000000 +0100
@@ -1,3 +1,39 @@
+Changes in version 0.2.4.20 - 2013-12-22
+  Tor 0.2.4.20 fixes potentially poor random number generation for users
+  who 1) use OpenSSL 1.0.0 or later, 2) set "HardwareAccel 1" in their
+  torrc file, 3) have "Sandy Bridge" or "Ivy Bridge" Intel processors,
+  and 4) have no state file in their DataDirectory (as would happen on
+  first start). Users who generated relay or hidden service identity
+  keys in such a situation should discard them and generate new ones.
+
+  This release also fixes a logic error that caused Tor clients to build
+  many more preemptive circuits than they actually need.
+
+  o Major bugfixes:
+    - Do not allow OpenSSL engines to replace the PRNG, even when
+      HardwareAccel is set. The only default builtin PRNG engine uses
+      the Intel RDRAND instruction to replace the entire PRNG, and
+      ignores all attempts to seed it with more entropy. That's
+      cryptographically stupid: the right response to a new alleged
+      entropy source is never to discard all previously used entropy
+      sources. Fixes bug 10402; works around behavior introduced in
+      OpenSSL 1.0.0. Diagnosis and investigation thanks to "coderman"
+      and "rl1987".
+    - Fix assertion failure when AutomapHostsOnResolve yields an IPv6
+      address. Fixes bug 10465; bugfix on 0.2.4.7-alpha.
+    - Avoid launching spurious extra circuits when a stream is pending.
+      This fixes a bug where any circuit that _wasn't_ unusable for new
+      streams would be treated as if it were, causing extra circuits to
+      be launched. Fixes bug 10456; bugfix on 0.2.4.12-alpha.
+
+  o Minor bugfixes:
+    - Avoid a crash bug when starting with a corrupted microdescriptor
+      cache file. Fixes bug 10406; bugfix on 0.2.2.6-alpha.
+    - If we fail to dump a previously cached microdescriptor to disk, avoid
+      freeing duplicate data later on. Fixes bug 10423; bugfix on
+      0.2.4.13-alpha. Spotted by "bobnomnom".
+
+
 Changes in version 0.2.4.19 - 2013-12-11
   The Tor 0.2.4 release series is dedicated to the memory of Aaron Swartz
   (1986-2013). Aaron worked on diverse projects including helping to guide
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/ReleaseNotes 
new/tor-0.2.4.20/ReleaseNotes
--- old/tor-0.2.4.19/ReleaseNotes       2013-12-10 23:08:26.000000000 +0100
+++ new/tor-0.2.4.20/ReleaseNotes       2013-12-23 00:37:45.000000000 +0100
@@ -3,6 +3,42 @@
 of Tor. If you want to see more detailed descriptions of the changes in
 each development snapshot, see the ChangeLog file.
 
+Changes in version 0.2.4.20 - 2013-12-22
+  Tor 0.2.4.20 fixes potentially poor random number generation for users
+  who 1) use OpenSSL 1.0.0 or later, 2) set "HardwareAccel 1" in their
+  torrc file, 3) have "Sandy Bridge" or "Ivy Bridge" Intel processors,
+  and 4) have no state file in their DataDirectory (as would happen on
+  first start). Users who generated relay or hidden service identity
+  keys in such a situation should discard them and generate new ones.
+
+  This release also fixes a logic error that caused Tor clients to build
+  many more preemptive circuits than they actually need.
+
+  o Major bugfixes:
+    - Do not allow OpenSSL engines to replace the PRNG, even when
+      HardwareAccel is set. The only default builtin PRNG engine uses
+      the Intel RDRAND instruction to replace the entire PRNG, and
+      ignores all attempts to seed it with more entropy. That's
+      cryptographically stupid: the right response to a new alleged
+      entropy source is never to discard all previously used entropy
+      sources. Fixes bug 10402; works around behavior introduced in
+      OpenSSL 1.0.0. Diagnosis and investigation thanks to "coderman"
+      and "rl1987".
+    - Fix assertion failure when AutomapHostsOnResolve yields an IPv6
+      address. Fixes bug 10465; bugfix on 0.2.4.7-alpha.
+    - Avoid launching spurious extra circuits when a stream is pending.
+      This fixes a bug where any circuit that _wasn't_ unusable for new
+      streams would be treated as if it were, causing extra circuits to
+      be launched. Fixes bug 10456; bugfix on 0.2.4.12-alpha.
+
+  o Minor bugfixes:
+    - Avoid a crash bug when starting with a corrupted microdescriptor
+      cache file. Fixes bug 10406; bugfix on 0.2.2.6-alpha.
+    - If we fail to dump a previously cached microdescriptor to disk, avoid
+      freeing duplicate data later on. Fixes bug 10423; bugfix on
+      0.2.4.13-alpha. Spotted by "bobnomnom".
+
+
 Changes in version 0.2.4.19 - 2013-12-11
   The Tor 0.2.4 release series is dedicated to the memory of Aaron Swartz
   (1986-2013). Aaron worked on diverse projects including helping to guide
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/configure new/tor-0.2.4.20/configure
--- old/tor-0.2.4.19/configure  2013-12-10 23:08:30.000000000 +0100
+++ new/tor-0.2.4.20/configure  2013-12-23 06:36:13.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for tor 0.2.4.19.
+# Generated by GNU Autoconf 2.69 for tor 0.2.4.20.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@
 # Identity of this package.
 PACKAGE_NAME='tor'
 PACKAGE_TARNAME='tor'
-PACKAGE_VERSION='0.2.4.19'
-PACKAGE_STRING='tor 0.2.4.19'
+PACKAGE_VERSION='0.2.4.20'
+PACKAGE_STRING='tor 0.2.4.20'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1357,7 +1357,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures tor 0.2.4.19 to adapt to many kinds of systems.
+\`configure' configures tor 0.2.4.20 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1427,7 +1427,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of tor 0.2.4.19:";;
+     short | recursive ) echo "Configuration of tor 0.2.4.20:";;
    esac
   cat <<\_ACEOF
 
@@ -1563,7 +1563,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-tor configure 0.2.4.19
+tor configure 0.2.4.20
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2268,7 +2268,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by tor $as_me 0.2.4.19, which was
+It was created by tor $as_me 0.2.4.20, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3085,7 +3085,7 @@
 
 # Define the identity of the package.
  PACKAGE='tor'
- VERSION='0.2.4.19'
+ VERSION='0.2.4.20'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12126,7 +12126,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by tor $as_me 0.2.4.19, which was
+This file was extended by tor $as_me 0.2.4.20, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -12192,7 +12192,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-tor config.status 0.2.4.19
+tor config.status 0.2.4.20
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/configure.ac 
new/tor-0.2.4.20/configure.ac
--- old/tor-0.2.4.19/configure.ac       2013-12-10 23:08:26.000000000 +0100
+++ new/tor-0.2.4.20/configure.ac       2013-12-23 06:35:55.000000000 +0100
@@ -3,7 +3,7 @@
 dnl Copyright (c) 2007-2013, The Tor Project, Inc.
 dnl See LICENSE for licensing information
 
-AC_INIT([tor],[0.2.4.19])
+AC_INIT([tor],[0.2.4.20])
 AC_CONFIG_SRCDIR([src/or/main.c])
 AC_CONFIG_MACRO_DIR([m4])
 AM_INIT_AUTOMAKE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/contrib/tor-mingw.nsi.in 
new/tor-0.2.4.20/contrib/tor-mingw.nsi.in
--- old/tor-0.2.4.19/contrib/tor-mingw.nsi.in   2013-12-10 23:08:26.000000000 
+0100
+++ new/tor-0.2.4.20/contrib/tor-mingw.nsi.in   2013-12-23 06:35:55.000000000 
+0100
@@ -8,7 +8,7 @@
 !include "LogicLib.nsh"
 !include "FileFunc.nsh"
 !insertmacro GetParameters
-!define VERSION "0.2.4.19"
+!define VERSION "0.2.4.20"
 !define INSTALLER "tor-${VERSION}-win32.exe"
 !define WEBSITE "https://www.torproject.org/";
 !define LICENSE "LICENSE"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/doc/tor-fw-helper.1.in 
new/tor-0.2.4.20/doc/tor-fw-helper.1.in
--- old/tor-0.2.4.19/doc/tor-fw-helper.1.in     2013-11-16 19:13:13.000000000 
+0100
+++ new/tor-0.2.4.20/doc/tor-fw-helper.1.in     2013-07-14 02:27:29.000000000 
+0200
@@ -2,12 +2,12 @@
 .\"     Title: tor-fw-helper
 .\"    Author: Jacob Appelbaum
 .\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date: 11/16/2013
+.\"      Date: 07/13/2013
 .\"    Manual: Tor Manual
 .\"    Source: Tor
 .\"  Language: English
 .\"
-.TH "TOR\-FW\-HELPER" "1" "11/16/2013" "Tor" "Tor Manual"
+.TH "TOR\-FW\-HELPER" "1" "07/13/2013" "Tor" "Tor Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/doc/tor-fw-helper.html.in 
new/tor-0.2.4.20/doc/tor-fw-helper.html.in
--- old/tor-0.2.4.19/doc/tor-fw-helper.html.in  2013-11-16 19:13:12.000000000 
+0100
+++ new/tor-0.2.4.20/doc/tor-fw-helper.html.in  2013-07-14 02:27:29.000000000 
+0200
@@ -841,7 +841,7 @@
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2013-10-09 15:29:52 EDT
+Last updated 2013-07-06 18:11:10 EDT
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/doc/tor-gencert.1.in 
new/tor-0.2.4.20/doc/tor-gencert.1.in
--- old/tor-0.2.4.19/doc/tor-gencert.1.in       2013-09-05 05:41:41.000000000 
+0200
+++ new/tor-0.2.4.20/doc/tor-gencert.1.in       2013-07-01 22:30:07.000000000 
+0200
@@ -2,12 +2,12 @@
 .\"     Title: tor-gencert
 .\"    Author: Nick Mathewson
 .\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date: 09/04/2013
+.\"      Date: 07/01/2013
 .\"    Manual: Tor Manual
 .\"    Source: Tor
 .\"  Language: English
 .\"
-.TH "TOR\-GENCERT" "1" "09/04/2013" "Tor" "Tor Manual"
+.TH "TOR\-GENCERT" "1" "07/01/2013" "Tor" "Tor Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/doc/tor-gencert.html.in 
new/tor-0.2.4.20/doc/tor-gencert.html.in
--- old/tor-0.2.4.19/doc/tor-gencert.html.in    2013-09-05 05:41:49.000000000 
+0200
+++ new/tor-0.2.4.20/doc/tor-gencert.html.in    2013-07-01 22:30:13.000000000 
+0200
@@ -896,7 +896,7 @@
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2013-08-22 20:10:09 EDT
+Last updated 2013-06-05 21:24:12 EDT
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/doc/tor-resolve.1.in 
new/tor-0.2.4.20/doc/tor-resolve.1.in
--- old/tor-0.2.4.19/doc/tor-resolve.1.in       2013-09-05 05:41:44.000000000 
+0200
+++ new/tor-0.2.4.20/doc/tor-resolve.1.in       2013-07-01 22:30:08.000000000 
+0200
@@ -2,12 +2,12 @@
 .\"     Title: tor-resolve
 .\"    Author: Peter Palfrader
 .\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date: 09/04/2013
+.\"      Date: 07/01/2013
 .\"    Manual: Tor Manual
 .\"    Source: Tor
 .\"  Language: English
 .\"
-.TH "TOR\-RESOLVE" "1" "09/04/2013" "Tor" "Tor Manual"
+.TH "TOR\-RESOLVE" "1" "07/01/2013" "Tor" "Tor Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/doc/tor-resolve.html.in 
new/tor-0.2.4.20/doc/tor-resolve.html.in
--- old/tor-0.2.4.19/doc/tor-resolve.html.in    2013-09-05 05:41:49.000000000 
+0200
+++ new/tor-0.2.4.20/doc/tor-resolve.html.in    2013-07-01 22:30:14.000000000 
+0200
@@ -821,7 +821,7 @@
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2013-08-22 20:10:09 EDT
+Last updated 2013-06-05 21:24:12 EDT
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/doc/tor.1.in 
new/tor-0.2.4.20/doc/tor.1.in
--- old/tor-0.2.4.19/doc/tor.1.in       2013-12-10 23:10:01.000000000 +0100
+++ new/tor-0.2.4.20/doc/tor.1.in       2013-12-23 07:24:29.000000000 +0100
@@ -2,12 +2,12 @@
 .\"     Title: tor
 .\"    Author: [see the "AUTHORS" section]
 .\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date: 12/10/2013
+.\"      Date: 12/23/2013
 .\"    Manual: Tor Manual
 .\"    Source: Tor
 .\"  Language: English
 .\"
-.TH "TOR" "1" "12/10/2013" "Tor" "Tor Manual"
+.TH "TOR" "1" "12/23/2013" "Tor" "Tor Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/doc/tor.html.in 
new/tor-0.2.4.20/doc/tor.html.in
--- old/tor-0.2.4.19/doc/tor.html.in    2013-12-10 23:10:05.000000000 +0100
+++ new/tor-0.2.4.20/doc/tor.html.in    2013-12-23 07:24:55.000000000 +0100
@@ -4447,7 +4447,7 @@
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2013-12-10 17:08:26 EST
+Last updated 2013-12-23 00:35:55 EST
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/doc/torify.1.in 
new/tor-0.2.4.20/doc/torify.1.in
--- old/tor-0.2.4.19/doc/torify.1.in    2013-10-10 20:55:24.000000000 +0200
+++ new/tor-0.2.4.20/doc/torify.1.in    2013-07-07 00:39:32.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: torify
 .\"    Author: [see the "AUTHORS" section]
 .\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date: 10/10/2013
+.\"      Date: 07/06/2013
 .\"    Manual: Tor Manual
 .\"    Source: Tor
 .\"  Language: English
 .\"
-.TH "TORIFY" "1" "10/10/2013" "Tor" "Tor Manual"
+.TH "TORIFY" "1" "07/06/2013" "Tor" "Tor Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/doc/torify.html.in 
new/tor-0.2.4.20/doc/torify.html.in
--- old/tor-0.2.4.19/doc/torify.html.in 2013-10-10 20:55:28.000000000 +0200
+++ new/tor-0.2.4.20/doc/torify.html.in 2013-07-07 00:39:36.000000000 +0200
@@ -789,7 +789,7 @@
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2013-10-09 15:29:52 EDT
+Last updated 2013-07-06 18:11:10 EDT
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/micro-revision.i 
new/tor-0.2.4.20/micro-revision.i
--- old/tor-0.2.4.19/micro-revision.i   2013-12-10 23:09:33.000000000 +0100
+++ new/tor-0.2.4.20/micro-revision.i   2013-12-23 07:20:53.000000000 +0100
@@ -1 +1 @@
-"e719d05fd296a9dd"
+"3cb5c70beec5bf46"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/src/common/common_sha1.i 
new/tor-0.2.4.20/src/common/common_sha1.i
--- old/tor-0.2.4.19/src/common/common_sha1.i   2013-12-10 23:08:53.000000000 
+0100
+++ new/tor-0.2.4.20/src/common/common_sha1.i   2013-12-23 07:16:29.000000000 
+0100
@@ -1,5 +1,5 @@
 "6df0654a8a4ec4df3dd8091424d2fbb4d795dc0b  src/common/aes.c\n"
-"48dd91d36656559ccafbad27946d68b16406bf6b  src/common/crypto.c\n"
+"2e4e078d95ba5772913d20915096388de95c9458  src/common/crypto.c\n"
 "e690691451ae42afdaff915313ead860b1d021d0  src/common/crypto_format.c\n"
 "02c1744d1e1db0967595bc6bd2d69432692d082f  src/common/torgzip.c\n"
 "affb838c4670191cd5e021953f7876687b494166  src/common/tortls.c\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/src/common/crypto.c 
new/tor-0.2.4.20/src/common/crypto.c
--- old/tor-0.2.4.19/src/common/crypto.c        2013-12-10 23:08:26.000000000 
+0100
+++ new/tor-0.2.4.20/src/common/crypto.c        2013-12-23 06:35:55.000000000 
+0100
@@ -169,8 +169,8 @@
     const char *name, *id;
     name = ENGINE_get_name(e);
     id = ENGINE_get_id(e);
-    log_notice(LD_CRYPTO, "Using OpenSSL engine %s [%s] for %s",
-        name?name:"?", id?id:"?", fn);
+    log_notice(LD_CRYPTO, "Default OpenSSL engine for %s is %s [%s]",
+               fn, name?name:"?", id?id:"?");
   } else {
     log_info(LD_CRYPTO, "Using default implementation for %s", fn);
   }
@@ -288,7 +288,7 @@
       }
       log_engine("RSA", ENGINE_get_default_RSA());
       log_engine("DH", ENGINE_get_default_DH());
-      log_engine("RAND", ENGINE_get_default_RAND());
+      log_engine("RAND (which we will not use)", ENGINE_get_default_RAND());
       log_engine("SHA1", ENGINE_get_digest_engine(NID_sha1));
       log_engine("3DES", ENGINE_get_cipher_engine(NID_des_ede3_ecb));
       log_engine("AES", ENGINE_get_cipher_engine(NID_aes_128_ecb));
@@ -297,6 +297,13 @@
       log_info(LD_CRYPTO, "NOT using OpenSSL engine support.");
     }
 
+    if (RAND_get_rand_method() != RAND_SSLeay()) {
+      log_notice(LD_CRYPTO, "It appears that one of our engines has provided "
+                 "a replacement the OpenSSL RNG. Resetting it to the default "
+                 "implementation.");
+      RAND_set_rand_method(RAND_SSLeay());
+    }
+
     evaluate_evp_for_aes(-1);
     evaluate_ctr_for_aes();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/src/or/circuituse.c 
new/tor-0.2.4.20/src/or/circuituse.c
--- old/tor-0.2.4.19/src/or/circuituse.c        2013-12-10 23:08:26.000000000 
+0100
+++ new/tor-0.2.4.20/src/or/circuituse.c        2013-12-23 06:35:55.000000000 
+0100
@@ -828,7 +828,7 @@
       cpath_build_state_t *build_state = origin_circ->build_state;
       if (build_state->is_internal || build_state->onehop_tunnel)
         continue;
-      if (!origin_circ->unusable_for_new_conns)
+      if (origin_circ->unusable_for_new_conns)
         continue;
 
       exitnode = build_state_get_exit_node(build_state);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/src/or/connection_edge.c 
new/tor-0.2.4.20/src/or/connection_edge.c
--- old/tor-0.2.4.19/src/or/connection_edge.c   2013-12-10 23:08:26.000000000 
+0100
+++ new/tor-0.2.4.20/src/or/connection_edge.c   2013-12-23 06:35:55.000000000 
+0100
@@ -61,6 +61,11 @@
 static int connection_exit_connect_dir(edge_connection_t *exitconn);
 static int consider_plaintext_ports(entry_connection_t *conn, uint16_t port);
 static int connection_ap_supports_optimistic_data(const entry_connection_t *);
+static void connection_ap_handshake_socks_resolved_addr(
+                                            entry_connection_t *conn,
+                                            const tor_addr_t *answer,
+                                            int ttl,
+                                            time_t expires);
 
 /** An AP stream has failed/finished. If it hasn't already sent back
  * a socks reply, send one now (based on endreason). Also set
@@ -1156,17 +1161,13 @@
     }
 
     if (socks->command == SOCKS_COMMAND_RESOLVE) {
-      uint32_t answer;
-      struct in_addr in;
+      tor_addr_t answer;
       /* Reply to resolves immediately if we can. */
-      if (tor_inet_aton(socks->address, &in)) { /* see if it's an IP already */
-        /* leave it in network order */
-        answer = in.s_addr;
+      if (tor_addr_parse(&answer, socks->address) >= 0) {/* is it an IP? */
         /* remember _what_ is supposed to have been resolved. */
         strlcpy(socks->address, orig_address, sizeof(socks->address));
-        connection_ap_handshake_socks_resolved(conn,RESOLVED_TYPE_IPV4,4,
-                                               (uint8_t*)&answer,
-                                               -1,map_expires);
+        connection_ap_handshake_socks_resolved_addr(conn, &answer, -1,
+                                                    map_expires);
         connection_mark_unattached_ap(conn,
                                 END_STREAM_REASON_DONE |
                                 END_STREAM_REASON_FLAG_ALREADY_SOCKS_REPLIED);
@@ -2059,6 +2060,35 @@
   }
 }
 
+/**
+ * As connection_ap_handshake_socks_resolved, but take a tor_addr_t to send
+ * as the answer.
+ */
+static void
+connection_ap_handshake_socks_resolved_addr(entry_connection_t *conn,
+                                            const tor_addr_t *answer,
+                                            int ttl,
+                                            time_t expires)
+{
+  if (tor_addr_family(answer) == AF_INET) {
+    uint32_t a = tor_addr_to_ipv4n(answer); /* network order */
+    connection_ap_handshake_socks_resolved(conn,RESOLVED_TYPE_IPV4,4,
+                                           (uint8_t*)&a,
+                                           ttl, expires);
+  } else if (tor_addr_family(answer) == AF_INET6) {
+    const uint8_t *a = tor_addr_to_in6_addr8(answer);
+    connection_ap_handshake_socks_resolved(conn,RESOLVED_TYPE_IPV6,16,
+                                           a,
+                                           ttl, expires);
+  } else {
+    log_warn(LD_BUG, "Got called with address of unexpected family %d",
+             tor_addr_family(answer));
+    connection_ap_handshake_socks_resolved(conn,
+                                           RESOLVED_TYPE_ERROR,0,NULL,-1,-1);
+  }
+}
+
+
 /** Send an answer to an AP connection that has requested a DNS lookup via
  * SOCKS.  The type should be one of RESOLVED_TYPE_(IPV4|IPV6|HOSTNAME) or -1
  * for unreachable; the answer should be in the format specified in the socks
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/src/or/dirvote.c 
new/tor-0.2.4.20/src/or/dirvote.c
--- old/tor-0.2.4.19/src/or/dirvote.c   2013-12-10 23:08:26.000000000 +0100
+++ new/tor-0.2.4.20/src/or/dirvote.c   2013-12-23 06:35:55.000000000 +0100
@@ -3585,7 +3585,8 @@
 
   {
     smartlist_t *lst = microdescs_parse_from_string(output,
-                                                 output+strlen(output), 0, 1);
+                                                 output+strlen(output), 0,
+                                                    SAVED_NOWHERE);
     if (smartlist_len(lst) != 1) {
       log_warn(LD_DIR, "We generated a microdescriptor we couldn't parse.");
       SMARTLIST_FOREACH(lst, microdesc_t *, md, microdesc_free(md));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/src/or/microdesc.c 
new/tor-0.2.4.20/src/or/microdesc.c
--- old/tor-0.2.4.19/src/or/microdesc.c 2013-12-10 23:08:26.000000000 +0100
+++ new/tor-0.2.4.20/src/or/microdesc.c 2013-12-23 06:35:55.000000000 +0100
@@ -154,11 +154,10 @@
 {
   smartlist_t *descriptors, *added;
   const int allow_annotations = (where != SAVED_NOWHERE);
-  const int copy_body = (where != SAVED_IN_CACHE);
 
   descriptors = microdescs_parse_from_string(s, eos,
                                              allow_annotations,
-                                             copy_body);
+                                             where);
   if (listed_at > 0) {
     SMARTLIST_FOREACH(descriptors, microdesc_t *, md,
                       md->last_listed = listed_at);
@@ -407,6 +406,26 @@
     return 0;
 }
 
+/**
+ * Mark <b>md</b> as having no body, and release any storage previously held
+ * by its body.
+ */
+static void
+microdesc_wipe_body(microdesc_t *md)
+{
+  if (!md)
+    return;
+
+  if (md->saved_location != SAVED_IN_CACHE)
+    tor_free(md->body);
+
+  md->off = 0;
+  md->saved_location = SAVED_NOWHERE;
+  md->body = NULL;
+  md->bodylen = 0;
+  md->no_save = 1;
+}
+
 /** Regenerate the main cache file for <b>cache</b>, clear the journal file,
  * and update every microdesc_t in the cache with pointers to its new
  * location.  If <b>force</b> is true, do this unconditionally.  If
@@ -455,12 +474,7 @@
 
     size = dump_microdescriptor(fd, md, &annotation_len);
     if (size < 0) {
-      if (md->saved_location != SAVED_IN_CACHE)
-        tor_free(md->body);
-      md->saved_location = SAVED_NOWHERE;
-      md->off = 0;
-      md->bodylen = 0;
-      md->no_save = 1;
+      microdesc_wipe_body(md);
 
       /* rewind, in case it was a partial write. */
       tor_fd_setpos(fd, off);
@@ -497,11 +511,7 @@
     HT_FOREACH(mdp, microdesc_map, &cache->map) {
       microdesc_t *md = *mdp;
       if (md->saved_location == SAVED_IN_CACHE) {
-        md->off = 0;
-        md->saved_location = SAVED_NOWHERE;
-        md->body = NULL;
-        md->bodylen = 0;
-        md->no_save = 1;
+        microdesc_wipe_body(md);
       }
     }
     return -1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/src/or/or_sha1.i 
new/tor-0.2.4.20/src/or/or_sha1.i
--- old/tor-0.2.4.19/src/or/or_sha1.i   2013-12-10 23:09:33.000000000 +0100
+++ new/tor-0.2.4.20/src/or/or_sha1.i   2013-12-23 07:20:51.000000000 +0100
@@ -8,18 +8,18 @@
 "db8e6e4e880a19999aa97663ae08c52972386563  src/or/circuitmux.c\n"
 "d4ad2888c3101581cf4544750370f2cd3cf94fdd  src/or/circuitmux_ewma.c\n"
 "0d147a24797417d019592ee0f8dee3feccbf1318  src/or/circuitstats.c\n"
-"86dfff9e8ac34bf9acbcb302d0e9a6a2a22d0a35  src/or/circuituse.c\n"
+"eac62ce167b3dbaea1ee00a98a9f063d7614f4fc  src/or/circuituse.c\n"
 "fb90791ead8ce4c952212372db0444f8940c8d5a  src/or/command.c\n"
 "9a49da73907e8594264a69587d079903a4a33505  src/or/config.c\n"
 "36dc692c0ddd83463722eeca9016c730b5bc654e  src/or/confparse.c\n"
 "db9dc5fcde8b68f45cd6b8ffcff4e83ef530d62c  src/or/connection.c\n"
-"989fa93d192f5d9b84c473cb48c1e8b70537d781  src/or/connection_edge.c\n"
+"8f5c91d0ae62ab7aac23bc2f31139fdd8fdc4730  src/or/connection_edge.c\n"
 "45b23f791bbaae08deaa9adaa23f021cb056a732  src/or/connection_or.c\n"
 "dd37d24f3da34951f5aab7cf06ed7f0af720ae11  src/or/control.c\n"
 "a06da0534bf2653f0c919eeb12b45911372149d9  src/or/cpuworker.c\n"
 "36cba941a3af51e8b89604a1432a9cf4439533d9  src/or/directory.c\n"
 "0833ae16c55ccff2e947bd68254b37a76ada6cc4  src/or/dirserv.c\n"
-"ebbef044d54ac1ed0b47fc03665c0d5da762a669  src/or/dirvote.c\n"
+"e8964aa5e0d59a47291daca873a30c2e54ed570e  src/or/dirvote.c\n"
 "58873f9472fbd3374bb8bedf8898cd610979759d  src/or/dns.c\n"
 "7051649c91cbb08873693d147e4c6da7e1e043e5  src/or/dnsserv.c\n"
 "e5c6da5c0eb4b4214e6365b83fb5483d2d234cef  src/or/fp_pair.c\n"
@@ -27,7 +27,7 @@
 "21c231afb35845cfc303614e8e976479b715ffdc  src/or/entrynodes.c\n"
 "66f74cc610e925fa42eb4311f57d4db0ed60db49  src/or/hibernate.c\n"
 "18f5dea5f1b8dc6cb56eaa21e6c4fd0d38b10917  src/or/main.c\n"
-"4c0b1401e2e267e6fb433e30be3d277982b05137  src/or/microdesc.c\n"
+"0c5f95c1426ce13d5c633c30ba3a61d0a65b257d  src/or/microdesc.c\n"
 "288cac7fd59e434bdc04158e48413e80499aad42  src/or/networkstatus.c\n"
 "9948d42c266b0c71a8faef363d0d77d0d5680341  src/or/nodelist.c\n"
 "6f437580030e374cdc059d48ce3f912ba0d56672  src/or/onion.c\n"
@@ -45,7 +45,7 @@
 "3654e3f8358f16bb04b24922706f2ea2b2b9b8c9  src/or/replaycache.c\n"
 "c278c0a175daf6639fed9731da6ef5a0cd4f3a58  src/or/router.c\n"
 "d4fee3f549913565df2e122847186695b76311d8  src/or/routerlist.c\n"
-"56adf1ad5065f1b75d629f732f21fbb2b4683783  src/or/routerparse.c\n"
+"cae8e4f9d879575e62b7f1884f16864d33da6890  src/or/routerparse.c\n"
 "a1d43f45a49918eb613e13121ef85cc4405c04ca  src/or/routerset.c\n"
 "c3f3a207c09f4a889cd0cb311978de21cca3d5f8  src/or/statefile.c\n"
 "40b4d2e7810e5054cf52a45736423e580ca437d5  src/or/status.c\n"
@@ -102,6 +102,6 @@
 "30ed07fadbfc50eac024c415868f2e9ad6bc20fc  src/or/router.h\n"
 "98fbe2beb9b694bd3bddc509a0430aebafcf9d2e  src/or/routerlist.h\n"
 "ac098125b79f6fba41a58b498811f60c852d562b  src/or/routerset.h\n"
-"08128c087abb5778613fae5a991b3b913c76a314  src/or/routerparse.h\n"
+"ee45bbe04fd8686a28901ee82c43ad6f42dccde8  src/or/routerparse.h\n"
 "00e61f581c3734b619af4fe1a95e940862a8f76f  src/or/statefile.h\n"
 "1cec9dc4fff60b5569944a81db1b20e6d00066c0  src/or/status.h\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/src/or/routerparse.c 
new/tor-0.2.4.20/src/or/routerparse.c
--- old/tor-0.2.4.19/src/or/routerparse.c       2013-12-10 23:08:26.000000000 
+0100
+++ new/tor-0.2.4.20/src/or/routerparse.c       2013-12-23 06:35:55.000000000 
+0100
@@ -4245,12 +4245,17 @@
 
 /** Parse as many microdescriptors as are found from the string starting at
  * <b>s</b> and ending at <b>eos</b>.  If allow_annotations is set, read any
- * annotations we recognize and ignore ones we don't.  If <b>copy_body</b> is
- * true, then strdup the bodies of the microdescriptors.  Return all newly
+ * annotations we recognize and ignore ones we don't.
+ *
+ * If <b>saved_location</b> isn't SAVED_IN_CACHE, make a local copy of each
+ * descriptor in the body field of each microdesc_t.
+ *
+ * Return all newly
  * parsed microdescriptors in a newly allocated smartlist_t. */
 smartlist_t *
 microdescs_parse_from_string(const char *s, const char *eos,
-                             int allow_annotations, int copy_body)
+                             int allow_annotations,
+                             saved_location_t where)
 {
   smartlist_t *tokens;
   smartlist_t *result;
@@ -4259,6 +4264,7 @@
   const char *start = s;
   const char *start_of_next_microdesc;
   int flags = allow_annotations ? TS_ANNOTATIONS_OK : 0;
+  const int copy_body = (where != SAVED_IN_CACHE);
 
   directory_token_t *tok;
 
@@ -4288,6 +4294,7 @@
       tor_assert(cp);
 
       md->bodylen = start_of_next_microdesc - cp;
+      md->saved_location = where;
       if (copy_body)
         md->body = tor_memdup_nulterm(cp, md->bodylen);
       else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/src/or/routerparse.h 
new/tor-0.2.4.20/src/or/routerparse.h
--- old/tor-0.2.4.19/src/or/routerparse.h       2013-10-09 21:29:53.000000000 
+0200
+++ new/tor-0.2.4.20/src/or/routerparse.h       2013-12-22 08:25:53.000000000 
+0100
@@ -64,7 +64,7 @@
 
 smartlist_t *microdescs_parse_from_string(const char *s, const char *eos,
                                           int allow_annotations,
-                                          int copy_body);
+                                          saved_location_t where);
 
 authority_cert_t *authority_cert_parse_from_string(const char *s,
                                                    const char **end_of_string);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/src/test/test_microdesc.c 
new/tor-0.2.4.20/src/test/test_microdesc.c
--- old/tor-0.2.4.19/src/test/test_microdesc.c  2013-10-09 21:29:53.000000000 
+0200
+++ new/tor-0.2.4.20/src/test/test_microdesc.c  2013-12-22 08:25:53.000000000 
+0100
@@ -240,8 +240,53 @@
   tor_free(fn);
 }
 
+static const char truncated_md[] =
+  "@last-listed 2013-08-08 19:02:59\n"
+  "onion-key\n"
+  "-----BEGIN RSA PUBLIC KEY-----\n"
+  "MIGJAoGBAM91vLFNaM+gGhnRIdz2Cm/Kl7Xz0cOobIdVzhS3cKUJfk867hCuTipS\n"
+  "NveLBzNopvgXKruAAzEj3cACxk6Q8lv5UWOGCD1UolkgsWSE62RBjap44g+oc9J1\n"
+  "RI9968xOTZw0VaBQg9giEILNXl0djoikQ+5tQRUvLDDa67gpa5Q1AgMBAAE=\n"
+  "-----END RSA PUBLIC KEY-----\n"
+  "family @\n";
+
+static void
+test_md_cache_broken(void *data)
+{
+  or_options_t *options;
+  char *fn=NULL;
+  microdesc_cache_t *mc = NULL;
+
+  (void)data;
+
+  options = get_options_mutable();
+  tt_assert(options);
+  options->DataDirectory = tor_strdup(get_fname("md_datadir_test2"));
+
+#ifdef _WIN32
+  tt_int_op(0, ==, mkdir(options->DataDirectory));
+#else
+  tt_int_op(0, ==, mkdir(options->DataDirectory, 0700));
+#endif
+
+  tor_asprintf(&fn, "%s"PATH_SEPARATOR"cached-microdescs",
+               options->DataDirectory);
+
+  write_str_to_file(fn, truncated_md, 1);
+
+  mc = get_microdesc_cache();
+  tt_assert(mc);
+
+ done:
+  if (options)
+    tor_free(options->DataDirectory);
+  tor_free(fn);
+  microdesc_free_all();
+}
+
 struct testcase_t microdesc_tests[] = {
   { "cache", test_md_cache, TT_FORK, NULL, NULL },
+  { "broken_cache", test_md_cache_broken, TT_FORK, NULL, NULL },
   END_OF_TESTCASES
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tor-0.2.4.19/src/win32/orconfig.h 
new/tor-0.2.4.20/src/win32/orconfig.h
--- old/tor-0.2.4.19/src/win32/orconfig.h       2013-12-10 23:08:26.000000000 
+0100
+++ new/tor-0.2.4.20/src/win32/orconfig.h       2013-12-23 06:35:55.000000000 
+0100
@@ -241,7 +241,7 @@
 #define USING_TWOS_COMPLEMENT
 
 /* Version number of package */
-#define VERSION "0.2.4.19"
+#define VERSION "0.2.4.20"
 
 
 

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to