[tor-bugs] #30475 [Core Tor/Tor]: hs_service.c: compile-time warning with GCC 9.1.1

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri May 10 19:29:25 UTC 2019


#30475: hs_service.c: compile-time warning with GCC 9.1.1
------------------------------+-----------------------------------
     Reporter:  nickm         |      Owner:  (none)
         Type:  defect        |     Status:  new
     Priority:  Medium        |  Milestone:  Tor: 0.4.0.x-final
    Component:  Core Tor/Tor  |    Version:
     Severity:  Normal        |   Keywords:  040-must 035-backport
Actual Points:                |  Parent ID:
       Points:  .1            |   Reviewer:
      Sponsor:                |
------------------------------+-----------------------------------
 I tried building with GCC 9.1.1 for the first time, and got various
 warnings.

 {{{
 make[1]: Entering directory '/home/nickm/src/tor-035'
   CC       src/feature/hs/hs_service.o
 In file included from ./src/lib/crypt_ops/crypto_rsa.h:21,
                  from ./src/core/or/or.h:32,
                  from src/feature/hs/hs_service.c:11:
 In function ‘load_client_keys’,
     inlined from ‘load_service_keys’ at
 src/feature/hs/hs_service.c:1090:7,
     inlined from ‘hs_service_load_all_keys’ at
 src/feature/hs/hs_service.c:4010:9:
 ./src/lib/log/log.h:244:3: error: ‘%s’ directive argument is null [-Werror
 =format-overflow=]
   244 |   log_fn_(LOG_WARN, domain, __FUNCTION__, args, ##__VA_ARGS__)
       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 src/feature/hs/hs_service.c:1267:7: note: in expansion of macro ‘log_warn’
  1267 |       log_warn(LD_REND, "Client authorization file %s can't be
 read. "
       |       ^~~~~~~~
 src/feature/hs/hs_service.c: In function ‘hs_service_load_all_keys’:
 src/feature/hs/hs_service.c:1267:52: note: format string is defined here
  1267 |       log_warn(LD_REND, "Client authorization file %s can't be
 read. "
       |                                                    ^~
 cc1: all warnings being treated as errors
 make[1]: *** [Makefile:9877: src/feature/hs/hs_service.o] Error 1
   CC       src/feature/hs/core_libtor_app_testing_a-hs_service.o
 In file included from ./src/lib/crypt_ops/crypto_rsa.h:21,
                  from ./src/core/or/or.h:32,
                  from src/feature/hs/hs_service.c:11:
 In function ‘load_client_keys’,
     inlined from ‘load_service_keys’ at
 src/feature/hs/hs_service.c:1090:7,
     inlined from ‘hs_service_load_all_keys’ at
 src/feature/hs/hs_service.c:4010:9:
 ./src/lib/log/log.h:244:3: error: ‘%s’ directive argument is null [-Werror
 =format-overflow=]
   244 |   log_fn_(LOG_WARN, domain, __FUNCTION__, args, ##__VA_ARGS__)
       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 src/feature/hs/hs_service.c:1267:7: note: in expansion of macro ‘log_warn’
  1267 |       log_warn(LD_REND, "Client authorization file %s can't be
 read. "
       |       ^~~~~~~~
 src/feature/hs/hs_service.c: In function ‘hs_service_load_all_keys’:
 src/feature/hs/hs_service.c:1267:52: note: format string is defined here
  1267 |       log_warn(LD_REND, "Client authorization file %s can't be
 read. "
       |                                                    ^~
 cc1: all warnings being treated as errors
 make[1]: *** [Makefile:11111: src/feature/hs/core_libtor_app_testing_a-
 hs_service.o] Error 1
 make[1]: Target 'all-am' not remade because of errors.
 make[1]: Leaving directory '/home/nickm/src/tor-035'
 make: *** [Makefile:5788: all] Error 2
 [1016]$
 }}}

 It looks like this is a real bug: when there's something wrong with the
 client authorization file, we first free and null the file, and only log
 its contents afterwards.

 This appears to affect 0.3.5 and later.

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


More information about the tor-bugs mailing list