[Bug 258556] devel/llvm12: overwriting static memory
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 17 Sep 2021 10:41:42 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258556
Bug ID: 258556
Summary: devel/llvm12: overwriting static memory
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: Individual Port(s)
Assignee: brooks@FreeBSD.org
Reporter: dinoex@FreeBSD.org
Assignee: brooks@FreeBSD.org
Flags: maintainer-feedback?(brooks@FreeBSD.org)
With OpenSSL from ports I build a new version of tinyfuge (5.1.1):
Sources: https://github.com/ingwarsw/tinyfugue
The compiled code fails on starting the SSL connection.
Output:
% Trying to connect to ap: XXXX:f840::42 8889.
% SSL: cert verify depth exceeded: allowed=0 actual=2
% SSL: cert verify error: err=22 'certificate chain too long' depth:2
cn:/C=US/O=Internet
Security Research Group/CN=ISRG Root X1
% Intermediate connection to ap failed: SSL/lib: error:1416F086:SSL
While debugging with gcc the static memory of the application gets overwritten.
ssl_options is overwritten with bad data.
The code of the application seems fine, -Wall does not show any hints.
Once I enabled "-g" in CFLAGS the application runs.
Output:
% Trying to connect to ap: XXXX:f840::42 8889.
% SSL: chain: depth:2 cn:/C=US/O=Internet Security Research Group/CN=ISRG Root
X1
% SSL: chain: depth:1 cn:/C=US/O=Let's Encrypt/CN=R3
% SSL: chain: depth:0 cn:/CN=ap.XXXX.org
% SSL: cert verified: OK ret=0
% Connected to ap using cipher TLS_AES_256_GCM_SHA384.
I tested a few compilers:
clang version 10.0.1 (base)
clang version 12.0.1 (devel/llvm12)
gcc10 (FreeBSD Ports Collection) 10.3.0
The Problem happens with:
clang
clang12
clang -O1
clang12 -O1
The application runs with:
clang -g
clang -O0
clang12 -O0
gcc10 -O2
gcc10 -O3
The structure on FreeBSD 12.2 has an address of:
0x7fffffffe4c0 (fail)
0x7fffffffe340 (ok)
I guess there is something going wrong with the memory mapping.
--
You are receiving this mail because:
You are the assignee for the bug.