[tor-bugs] #19821 [Core Tor/Tor]: --expensive-hardening makes configure check for curve25519-donna-c64 to fail

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Aug 3 17:42:08 UTC 2016


#19821: --expensive-hardening makes configure check for curve25519-donna-c64 to
fail
--------------------------+------------------------------
 Reporter:  yurivict271   |          Owner:
     Type:  defect        |         Status:  new
 Priority:  Medium        |      Milestone:
Component:  Core Tor/Tor  |        Version:  Tor: 0.2.8.6
 Severity:  Normal        |     Resolution:
 Keywords:                |  Actual Points:
Parent ID:                |         Points:
 Reviewer:                |        Sponsor:
--------------------------+------------------------------

Comment (by yurivict271):

 Command line is from config.log:
 {{{
 cc -o conftest -O2 -pipe  -fstack-protector -fno-strict-aliasing -static
 -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer
 -fasynchronous-unwind-tables  -Is
 rc/common  -Wl,-rpath,/usr/local/lib -fstack-protector x.c -lpthread
 -lexecinfo
 }}}

 x.c is the corresponding failed program from config.log:

 {{{
 /* confdefs.h */
 #define PACKAGE_NAME "tor"
 #define PACKAGE_TARNAME "tor"
 #define PACKAGE_VERSION "0.2.8.6"
 #define PACKAGE_STRING "tor 0.2.8.6"
 #define PACKAGE_BUGREPORT ""
 #define PACKAGE_URL ""
 #define PACKAGE "tor"
 #define VERSION "0.2.8.6"
 #define FLEXIBLE_ARRAY_MEMBER /**/
 #define STDC_HEADERS 1
 #define HAVE_SYS_TYPES_H 1
 #define HAVE_SYS_STAT_H 1
 #define HAVE_STDLIB_H 1
 #define HAVE_STRING_H 1
 #define HAVE_MEMORY_H 1
 #define HAVE_STRINGS_H 1
 #define HAVE_INTTYPES_H 1
 #define HAVE_STDINT_H 1
 #define HAVE_UNISTD_H 1
 #define HAVE_ACCEPT4 1
 #define HAVE_BACKTRACE 1
 #define HAVE_CLOCK_GETTIME 1
 #define HAVE_FLOCK 1
 #define HAVE_GETADDRINFO 1
 #define HAVE_GETIFADDRS 1
 #define HAVE_GETPASS 1
 #define HAVE_GETRLIMIT 1
 #define HAVE_GETTIMEOFDAY 1
 #define HAVE_GMTIME_R 1
 #define HAVE_INET_ATON 1
 #define HAVE_IOCTL 1
 #define HAVE_ISSETUGID 1
 #define HAVE_LOCALTIME_R 1
 #define HAVE_MEMMEM 1
 #define HAVE_PIPE 1
 #define HAVE_PIPE2 1
 #define HAVE_READPASSPHRASE 1
 #define HAVE_SIGACTION 1
 #define HAVE_SOCKETPAIR 1
 #define HAVE_STATVFS 1
 #define HAVE_STRLCAT 1
 #define HAVE_STRLCPY 1
 #define HAVE_STRNLEN 1
 #define HAVE_STRPTIME 1
 #define HAVE_STRTOK_R 1
 #define HAVE_STRTOULL 1
 #define HAVE_SYSCONF 1
 #define HAVE_SYSCTL 1
 #define HAVE_UNAME 1
 #define HAVE_USLEEP 1
 #define HAVE_VASPRINTF 1
 #define HAVE_PTHREAD_H 1
 #define HAVE_PTHREAD_CREATE 1
 #define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
 #define HAVE_EVENT_GET_VERSION_NUMBER 1
 #define HAVE_EVUTIL_SECURE_RNG_SET_URANDOM_DEVICE_FILE 1
 #define HAVE_EVUTIL_SECURE_RNG_INIT 1
 #define HAVE_EVENT2_EVENT_H 1
 #define HAVE_EVENT2_DNS_H 1
 #define HAVE_EVENT2_BUFFEREVENT_SSL_H 1
 #define USE_BUFFEREVENTS 1
 #define HAVE_STRUCT_SSL_METHOD_ST_GET_CIPHER_BY_CHAR 1
 #define HAVE_SSL_CIPHER_FIND 1
 /* end confdefs.h.  */
       #include <stdint.h>
       typedef unsigned uint128_t __attribute__((mode(TI)));
   int func(uint64_t a, uint64_t b) {
            uint128_t c = ((uint128_t)a) * b;
            int ok = ((uint64_t)(c>>96)) == 522859 &&
              (((uint64_t)(c>>64))&0xffffffffL) == 3604448702L &&
                  (((uint64_t)(c>>32))&0xffffffffL) == 2351960064L &&
                  (((uint64_t)(c))&0xffffffffL) == 0;
            return ok;
       }

 int
 main ()
 {
     int ok = func( ((uint64_t)2000000000) * 1000000000,
                    ((uint64_t)1234567890) << 24);
         return !ok;

   ;
   return 0;
 }
 }}}

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/19821#comment:4>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list