You are not logged in.

#1 2022-08-11 09:34:32

yoshi3
Member
Registered: 2021-10-08
Posts: 23

current Tor can't be compilable

0.4.7.8 is (also) not compilable.

from Errorlog:
src/feature/relay/ext_orport.c ...  char random_id[EXT_OR_CONN_ID_LEN] ...  [-Werror=uninitialized]


This can be solved by char random_id[EXT_OR_CONN_ID_LEN]=" ";   (In the current GIT sources from TOR, the affected function is removed)

But how was (also) the current Tor package built  ?

Offline

#2 2022-08-11 11:00:10

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,866

Re: current Tor can't be compilable

package builds fine here.

Are you using the PKGBUILD & accompanying files from https://github.com/archlinux/svntogit-c … /tor/trunk ?


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#3 2022-08-11 18:26:46

yoshi3
Member
Registered: 2021-10-08
Posts: 23

Re: current Tor can't be compilable

Lone_Wolf wrote:

package builds fine here.

Are you using the PKGBUILD & accompanying files from https://github.com/archlinux/svntogit-c … /tor/trunk ?


add (always) --enable-fatal-warnings

PKGBUILD:
...

build() {
  cd ${pkgname}-${pkgver}
  ./configure \
    --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var --enable-fatal-warnings
  make
}

...

Offline

#4 2022-08-11 18:56:31

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,866

Re: current Tor can't be compilable

./configure --help wrote:

--enable-fatal-warnings tell the compiler to treat all warnings as errors.

yoshi3 wrote:

But how was (also) the current Tor package built  ?

The package in repo doesn't abort on warnings so build completes.
I do prefer software without warnings at compile/link stage, but those are a minority.

If you feel this is important enough to patch the source, try filing a bug report against the tor package at https://bugs.archlinux.org/
add the patch to your locally built version.

EDITED after loqs' reply and checking the patch

Last edited by Lone_Wolf (2022-08-12 07:15:07)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#5 2022-08-11 19:48:39

loqs
Member
Registered: 2014-03-06
Posts: 17,192

Re: current Tor can't be compilable

https://gitlab.torproject.org/tpo/core/ … sues/40648 why would this warrant patching and rebuilding?

Offline

#6 2022-08-12 21:50:18

yoshi3
Member
Registered: 2021-10-08
Posts: 23

Re: current Tor can't be compilable

loqs wrote:

https://gitlab.torproject.org/tpo/core/ … sues/40648 why would this warrant patching and rebuilding?


Why is the affected function included in 0.4.7.X at all ?

Offline

#7 2022-08-12 23:17:54

loqs
Member
Registered: 2014-03-06
Posts: 17,192

Re: current Tor can't be compilable

yoshi3 wrote:
loqs wrote:

https://gitlab.torproject.org/tpo/core/ … sues/40648 why would this warrant patching and rebuilding?


Why is the affected function included in 0.4.7.X at all ?

You do not agree with the upstream developers conclusion about the impact of the issue?  You agree with their conclusions but believe the change should be cherry-picked to 0.4.7.Y anyway?
Have you filed bug reports or provided fixes for the other warnings generated during the compilation tor 0.4.7.9?

In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
src/test/test_bt_cl.c: In function ‘crash’:
src/test/test_bt_cl.c:46:24: warning: null pointer dereference [-Wnull-dereference]
   46 |     *(volatile int *)0 = 0;
      |                        ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘sendme_cell_set_data_len’,
    inlined from ‘channelpadding_send_enable_command’ at src/core/or/channelpadding.c:347:3:
src/trunnel/sendme_cell.c:81:17: warning: array subscript ‘struct sendme_cell_t[0]’ is partly outside array bounds of ‘struct channelpadding_negotiate_t[1]’ [-Warray-bounds]
   81 |   inp->data_len = val;
      |                 ^
src/core/or/channelpadding.c: In function ‘channelpadding_send_enable_command’:
src/core/or/channelpadding.c:335:30: note: object ‘enable’ of size 8
  335 |   channelpadding_negotiate_t enable;
      |                              ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘netinfo_addr_set_addr_ipv4’,
    inlined from ‘circpad_negotiate_padding’ at src/core/or/circuitpadding.c:2900:3:
src/trunnel/netinfo.c:88:18: warning: array subscript ‘struct netinfo_addr_t[0]’ is partly outside array bounds of ‘struct circpad_negotiate_t[1]’ [-Warray-bounds]
   88 |   inp->addr_ipv4 = val;
      |                  ^
src/core/or/circuitpadding.c: In function ‘circpad_negotiate_padding’:
src/core/or/circuitpadding.c:2880:23: note: object ‘type’ of size 12
 2880 |   circpad_negotiate_t type;
      |                       ^
In function ‘netinfo_addr_set_addr_ipv4’,
    inlined from ‘circpad_padding_negotiated’ at src/core/or/circuitpadding.c:2943:3:
src/trunnel/netinfo.c:88:18: warning: array subscript ‘struct netinfo_addr_t[0]’ is partly outside array bounds of ‘struct circpad_negotiated_t[1]’ [-Warray-bounds]
   88 |   inp->addr_ipv4 = val;
      |                  ^
src/core/or/circuitpadding.c: In function ‘circpad_padding_negotiated’:
src/core/or/circuitpadding.c:2928:24: note: object ‘type’ of size 12
 2928 |   circpad_negotiated_t type;
      |                        ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘sendme_cell_set_data_len’,
    inlined from ‘channelpadding_send_enable_command’ at src/core/or/channelpadding.c:347:3:
src/trunnel/sendme_cell.c:81:17: warning: array subscript ‘struct sendme_cell_t[0]’ is partly outside array bounds of ‘struct channelpadding_negotiate_t[1]’ [-Warray-bounds]
   81 |   inp->data_len = val;
      |                 ^
src/core/or/channelpadding.c: In function ‘channelpadding_send_enable_command’:
src/core/or/channelpadding.c:335:30: note: object ‘enable’ of size 8
  335 |   channelpadding_negotiate_t enable;
      |                              ^
In function ‘netinfo_addr_set_addr_ipv4’,
    inlined from ‘circuit_send_stream_xon’ at src/core/or/congestion_control_flow.c:209:3:
src/trunnel/netinfo.c:88:18: warning: array subscript ‘struct netinfo_addr_t[0]’ is partly outside array bounds of ‘struct xon_cell_t[1]’ [-Warray-bounds]
   88 |   inp->addr_ipv4 = val;
      |                  ^
src/core/or/congestion_control_flow.c: In function ‘circuit_send_stream_xon’:
src/core/or/congestion_control_flow.c:201:14: note: object ‘xon’ of size 12
  201 |   xon_cell_t xon;
      |              ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3,
    inlined from ‘or_connection_new’ at src/core/mainloop/connection.c:593:5:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘or_connection_new’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘memcpy’,
    inlined from ‘connection_or_set_ext_or_identifier’ at src/feature/relay/ext_orport.c:669:3:
/usr/include/bits/string_fortified.h:29:10: warning: ‘random_id’ may be used uninitialized [-Wmaybe-uninitialized]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^
src/feature/relay/ext_orport.c: In function ‘connection_or_set_ext_or_identifier’:
src/feature/relay/ext_orport.c:664:8: note: ‘random_id’ declared here
  664 |   char random_id[EXT_OR_CONN_ID_LEN];
      |        ^
In function ‘crypto_digest_new_internal’,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/crypt_ops/crypto_digest_openssl.c:187:16: warning: array subscript ‘struct crypto_digest_t[0]’ is partly outside array bounds of ‘unsigned char[104]’ [-Warray-bounds]
  187 |   r->algorithm = algorithm;
      |                ^
In function ‘tor_malloc_’,
    inlined from ‘crypto_digest_new_internal’ at src/lib/crypt_ops/crypto_digest_openssl.c:186:24,
    inlined from ‘crypto_digest_new’ at src/lib/crypt_ops/crypto_digest_openssl.c:235:10:
src/lib/malloc/malloc.c:45:12: note: object of size 104 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_ent_hash’,
    inlined from ‘socket_table_s_HT_INSERT’ at src/core/or/scheduler_kist.c:58:1,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:45:23: warning: array subscript ‘const struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   45 |   return (uint32_t)ent->chan->global_identifier;
      |                       ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘socket_table_s_HT_INSERT’,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:358:5,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/core/or/scheduler_kist.c:58:1: warning: array subscript ‘struct socket_table_ent_t[0]’ is partly outside array bounds of ‘unsigned char[24]’ [-Warray-bounds]
   58 | HT_PROTOTYPE(socket_table_s, socket_table_ent_t, node, socket_table_ent_hash,
      | ^
In function ‘tor_malloc_’,
    inlined from ‘tor_malloc_zero_’ at src/lib/malloc/malloc.c:71:18,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:356:11,
    inlined from ‘outbuf_table_add’ at src/core/or/scheduler_kist.c:348:1:
src/lib/malloc/malloc.c:45:12: note: object of size 24 allocated by ‘malloc’
   45 |   result = raw_malloc(size);
      |            ^
In function ‘netinfo_addr_set_addr_ipv4’,
    inlined from ‘circuit_send_stream_xon’ at src/core/or/congestion_control_flow.c:209:3:
src/trunnel/netinfo.c:88:18: warning: array subscript ‘struct netinfo_addr_t[0]’ is partly outside array bounds of ‘struct xon_cell_t[1]’ [-Warray-bounds]
   88 |   inp->addr_ipv4 = val;
      |                  ^
src/core/or/congestion_control_flow.c: In function ‘circuit_send_stream_xon’:
src/core/or/congestion_control_flow.c:201:14: note: object ‘xon’ of size 12
  201 |   xon_cell_t xon;
      |              ^
src/test/test_dirauth_ports.c: In function ‘test_dirauth_port_lookup’:
src/test/test_dirauth_ports.c:123:3: warning: potential null pointer dereference [-Wnull-dereference]
  123 |   tt_int_op(dirport->port, OP_EQ, 9132);
      |   ^
src/test/test_dirauth_ports.c:126:3: warning: potential null pointer dereference [-Wnull-dereference]
  126 |   tt_int_op(dirport->port, OP_EQ, 9133);
      |   ^
src/test/test_dirauth_ports.c:129:3: warning: potential null pointer dereference [-Wnull-dereference]
  129 |   tt_int_op(dirport->port, OP_EQ, 9134);
      |   ^
src/test/test_dirauth_ports.c:133:3: warning: potential null pointer dereference [-Wnull-dereference]
  133 |   tt_int_op(dirport->port, OP_EQ, 9140);
      |   ^
src/test/test_dirauth_ports.c:136:3: warning: potential null pointer dereference [-Wnull-dereference]
  136 |   tt_int_op(dirport->port, OP_EQ, 9131); // fallback
      |   ^
src/test/test_dirauth_ports.c:139:3: warning: potential null pointer dereference [-Wnull-dereference]
  139 |   tt_int_op(dirport->port, OP_EQ, 9131); // fallback
      |   ^
src/feature/dirparse/policy_parse.c: In function ‘router_parse_addr_policy’:
src/feature/dirparse/policy_parse.c:179:1: warning: function may return address of local variable [-Wreturn-local-addr]
  179 | }
      | ^
src/feature/dirparse/policy_parse.c:193:17: note: declared here
  193 |   addr_policy_t result;
      |                 ^
src/test/test_hs_descriptor.c: In function ‘test_descriptor_padding’:
src/test/test_hs_descriptor.c:149:18: warning: ‘result_188’ may be used uninitialized [-Wmaybe-uninitialized]
  149 |     padded_len = build_plaintext_padding(plaintext, plaintext_len,
      |                  ^
src/feature/hs/hs_descriptor.c:538:1: note: by argument 1 of type ‘const char *’ to ‘build_plaintext_padding’ declared here
  538 | build_plaintext_padding(const char *plaintext, size_t plaintext_len,
      | ^
src/test/test_dir_handle_get.c: In function ‘test_dir_handle_get_status_vote_next_bandwidth’:
src/test/test_dir_handle_get.c:2409:3: warning: ‘expires’ may be used uninitialized [-Wmaybe-uninitialized]
 2409 |   tor_free(expires);
      |   ^
src/test/test_dir_handle_get.c:2376:9: note: ‘expires’ declared here
 2376 |   char *expires = NULL;
      |         ^
src/test/test_dir_handle_get.c:2409:3: warning: ‘expires’ may be used uninitialized [-Wmaybe-uninitialized]
 2409 |   tor_free(expires);
      |   ^
src/test/test_dir_handle_get.c:2376:9: note: ‘expires’ declared here
 2376 |   char *expires = NULL;
      |         ^
src/test/test_dir_handle_get.c:2409:3: warning: ‘expires’ may be used uninitialized [-Wmaybe-uninitialized]
 2409 |   tor_free(expires);
      |   ^
src/test/test_dir_handle_get.c:2376:9: note: ‘expires’ declared here
 2376 |   char *expires = NULL;
      |         ^
src/test/test_dir_handle_get.c:2409:3: warning: ‘expires’ may be used uninitialized [-Wmaybe-uninitialized]
 2409 |   tor_free(expires);
      |   ^
src/test/test_dir_handle_get.c:2376:9: note: ‘expires’ declared here
 2376 |   char *expires = NULL;
      |         ^
src/test/test_dir_handle_get.c:2409:3: warning: ‘expires’ may be used uninitialized [-Wmaybe-uninitialized]
 2409 |   tor_free(expires);
      |   ^
src/test/test_dir_handle_get.c:2376:9: note: ‘expires’ declared here
 2376 |   char *expires = NULL;
      |         ^
src/test/test_dir_handle_get.c:2409:3: warning: ‘expires’ may be used uninitialized [-Wmaybe-uninitialized]
 2409 |   tor_free(expires);
      |   ^
src/test/test_dir_handle_get.c:2376:9: note: ‘expires’ declared here
 2376 |   char *expires = NULL;
      |         ^
In function ‘netinfo_addr_set_addr_ipv4’,
    inlined from ‘circpad_negotiate_padding’ at src/core/or/circuitpadding.c:2900:3:
src/trunnel/netinfo.c:88:18: warning: array subscript ‘struct netinfo_addr_t[0]’ is partly outside array bounds of ‘struct circpad_negotiate_t[1]’ [-Warray-bounds]
   88 |   inp->addr_ipv4 = val;
      |                  ^
src/core/or/circuitpadding.c: In function ‘circpad_negotiate_padding’:
src/core/or/circuitpadding.c:2880:23: note: object ‘type’ of size 12
 2880 |   circpad_negotiate_t type;
      |                       ^
In function ‘netinfo_addr_set_addr_ipv4’,
    inlined from ‘circpad_padding_negotiated’ at src/core/or/circuitpadding.c:2943:3:
src/trunnel/netinfo.c:88:18: warning: array subscript ‘struct netinfo_addr_t[0]’ is partly outside array bounds of ‘struct circpad_negotiated_t[1]’ [-Warray-bounds]
   88 |   inp->addr_ipv4 = val;
      |                  ^
src/core/or/circuitpadding.c: In function ‘circpad_padding_negotiated’:
src/core/or/circuitpadding.c:2928:24: note: object ‘type’ of size 12
 2928 |   circpad_negotiated_t type;
      |                        ^

Warnings are not errors. Compilers differentiate between warnings and errors.   Arch uses -Werror=format-security rather than treating all warnings as errors,  --enable-fatal-warnings defaults to off,  the package maintainer has chosen not to add it.
As part of a continuous integration process -Werror preventing the introduction of coding issues is very valuable.

Offline

#8 2022-08-13 10:33:14

yoshi3
Member
Registered: 2021-10-08
Posts: 23

Re: current Tor can't be compilable

Lone_Wolf wrote:
./configure --help wrote:

--enable-fatal-warnings tell the compiler to treat all warnings as errors.

yoshi3 wrote:

But how was (also) the current Tor package built  ?

The package in repo doesn't abort on warnings so build completes.
I do prefer software without warnings at compile/link stage, but those are a minority.

If you feel this is important enough to patch the source, try filing a bug report against the tor package at https://bugs.archlinux.org/
add the patch to your locally built version.

EDITED after loqs' reply and checking the patch


  Oh, "I do prefer software without warnings at compile"...


I wish for something else. Software in the context of a will to create democratic conditions.
Tor, the internet as a whole - everything is democratically illegitimate! Who reads and already knows their constitution?

People apparently voluntarily subject their lives to someone else's worthless fictions (also called "money") instead of taking control of self-created, democratically legitimate means of exchange.
TOR is one of countless metaphors for it. No errors or warnings with GCC 9.4 - but with current GCC. It's also a way of revealing past mistakes (continued for someone else's "money").
Simply (also here) omit parameters (PKGBUILD)  when compiling to mask past errors...

Offline

#9 2022-08-13 16:19:23

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,866

Re: current Tor can't be compilable

I'm leaving this thread, bye.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#10 2022-08-13 16:44:48

mpan
Member
Registered: 2012-08-01
Posts: 1,188
Website

Re: current Tor can't be compilable

yoshi3:
The core concept of democratic rule is that any member of a society has the right to be responsible for ensuring everything works as it should. Tor is a FOSS project and gives you the freedom to fix it, and either offer the patches to Tor Project or start your own organisation that maintains a fork. But do you really care about either democracy or freedom? Or are you just using big words?


Sometimes I seem a bit harsh — don’t get offended too easily!

Offline

#11 2022-08-13 17:39:37

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,739

Re: current Tor can't be compilable

Yoshi3, The forums are not a democracy, if you get my drift.


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

Board footer

Powered by FluxBB