ltrace produces no debug output at all, workaround is compiling with "-fcf-protection=none"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ltrace (Ubuntu) |
Fix Released
|
Critical
|
Ravi Kant Sharma | ||
Focal |
Fix Released
|
Critical
|
Ravi Kant Sharma | ||
Jammy |
Fix Released
|
Critical
|
Ravi Kant Sharma | ||
Mantic |
Fix Released
|
Critical
|
Ravi Kant Sharma | ||
Noble |
Fix Released
|
Critical
|
Ravi Kant Sharma |
Bug Description
[ Impact ]
* ltrace on Intel executable on current Ubuntu produces no debug output.
* The patch introduces handling of two PLTs on an Intel CET binary. This requires enabling ARCH_HAVE_
[ Test Plan ]
I'm not sufficiently knowledgeable about this matter to be considered an expert. I "trust" the patch and the bug reporter. I did sufficient testing to make sure the patch fixes the issue, and it doesn't introduce any obvious regression.
* instructions how to reproduce the bug
** run `ltrace ls` on any of the affected release. It will not produce any debug output.
** run ltrace on a hello built using (gcc hello.c -o hello). It will not produce any debug output.
** to see what is the expected output, compile hello.c with -fcf-protection
** another way to see the expected output is to run ltrace on Ubuntu Bionic release. (CET was not enabled by default here in gcc)
* testing the fix
** run the same commands with patched ltrace. It should output the debug symbols.
** steps to build ltrace locally on noble/devel and test
*** clone the repo (git ubuntu clone ltrace ltrace-gu)
*** checkout the branch fix-devel-1992939
*** apply all patches (quilt push -a)
*** ./configure && make
*** ./ltrace <path to hello.out> (should produce debug output)
*** ./ltrace ls (should produce debug output)
* I also did the following regressions tests.
** build a hello (gcc version Ubuntu 7.3.0-16ubuntu3) binary on bionic (mk-sbuild bionic and schroot) and run it with patched ltrace built on noble. it should produce debug output.
** I did the same for Jammy and Focal.
** Compile a hello binary with -fcf-protection
[ Where problems could occur ]
* There could be a problem if a user is depending on ARCH_HAVE_
[ Other Info ]
* There is a workaround to see debug symbols. Compiling with -fcf-protection
[ Original bug description ]
Hello,
Running ltrace on any executable on current Ubuntu produces no debug output at all.
I have verified the behavior shown below on kinetic and focal.
Compiling with "-fcf-protectio
The breakage seems to be related to "Intel CET Support" and the following upstream patch seems relevant:
https:/
More information on how to reproduce follows:
*** kinetic
# cat /etc/os-release
PRETTY_NAME="Ubuntu Kinetic Kudu (development branch)"
NAME="Ubuntu"
VERSION_ID="22.10"
VERSION="22.10 (Kinetic Kudu)"
VERSION_
ID=ubuntu
ID_LIKE=debian
HOME_URL="https:/
SUPPORT_URL="https:/
BUG_REPORT_URL="https:/
PRIVACY_
UBUNTU_
LOGO=ubuntu-logo
# apt install ltrace
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ltrace is already the newest version (0.7.3-6.1ubuntu6).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
# ltrace ls -d .
.
+++ exited (status 0) +++
FAIL:
$ gcc -o hello hello.c
$ ltrace ./hello
Hello, World!
+++ exited (status 0) +++
SUCCESS:
$ gcc -fcf-protection
$ ltrace ./hello
puts("Hello, World!"Hello, World!
) = 14
+++ exited (status 0) +++
Thank you,
Vangelis
ProblemType: Bug
DistroRelease: Ubuntu 22.10
Package: ltrace 0.7.3-6.1ubuntu6
Uname: Linux 5.4.72-
ApportVersion: 2.23.1-0ubuntu3
Architecture: amd64
CasperMD5CheckR
Date: Fri Oct 14 06:40:46 2022
ProcEnviron:
TERM=xterm
PATH=(custom, no user)
SourcePackage: ltrace
UpgradeStatus: No upgrade log present (probably fresh install)
Related branches
- Simon Chopin (community): Needs Fixing
- Ubuntu Sponsors: Pending requested
- Canonical Server Reporter: Pending requested
- git-ubuntu import: Pending requested
-
Diff: 338 lines (+316/-0)3 files modifieddebian/changelog (+7/-0)
debian/patches/lp1992939-add-intel-cet-support.patch (+308/-0)
debian/patches/series (+1/-0)
tags: | added: foundation-todo |
tags: |
added: foundations-todo removed: foundation-todo |
Changed in ltrace (Ubuntu Jammy): | |
importance: | Undecided → Low |
Changed in ltrace (Ubuntu Focal): | |
importance: | Undecided → Low |
Changed in ltrace (Ubuntu Noble): | |
assignee: | nobody → Ravi Kant Sharma (ravi-sharma) |
Changed in ltrace (Ubuntu Focal): | |
assignee: | nobody → Ravi Kant Sharma (ravi-sharma) |
Changed in ltrace (Ubuntu Jammy): | |
assignee: | nobody → Ravi Kant Sharma (ravi-sharma) |
Changed in ltrace (Ubuntu Lunar): | |
importance: | Undecided → Low |
Changed in ltrace (Ubuntu Mantic): | |
importance: | Undecided → Low |
Changed in ltrace (Ubuntu Lunar): | |
assignee: | nobody → Ravi Kant Sharma (ravi-sharma) |
Changed in ltrace (Ubuntu Mantic): | |
assignee: | nobody → Ravi Kant Sharma (ravi-sharma) |
description: | updated |
no longer affects: | ltrace (Ubuntu Lunar) |
Changed in ltrace (Ubuntu Focal): | |
status: | New → In Progress |
Changed in ltrace (Ubuntu Jammy): | |
status: | New → In Progress |
Changed in ltrace (Ubuntu Mantic): | |
status: | New → In Progress |
Changed in ltrace (Ubuntu Noble): | |
status: | Triaged → In Progress |
tags: | removed: foundations-todo |
Status changed to 'Confirmed' because the bug affects multiple users.