uprobes: fix SIGSEGVs with setjmp/longjmp
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu on IBM z Systems |
Fix Released
|
High
|
Canonical Kernel Team | ||
linux (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Bionic |
Fix Released
|
High
|
Unassigned |
Bug Description
== SRU Justification ==
This commit fixes SIGSEGVs with setjmp/longjmp.
Symptom:
Setting a user space return probe on a function that does not
return because of a longjmp call may cause SIGSEGV or SIGILL.
Problem:
Userspace can do whatever it wants with its stack. Especially
stack modifications performed with longjmp cannot be handled 100%
correctly within the uprobes kernel part, which may lead to user
space observed crashed.
Solution:
Implement arch_uretprobe_
a lot and works for many situations.
This commit has also been cc'd to upstream stable, but it has not landed
in Bionic as of yet.
== Fix ==
783c3b53b950 ("s390/uprobes: implement arch_uretprobe_
== Regression Potential ==
Low. Limited to s390. The commit has also been cc'd to upstream
stable, so it has had additional upstream review.
== Test Case ==
A test kernel was built with this patch and tested by the original bug reporter.
The bug reporter states the test kernel resolved the bug.
Upstream-ID: 783c3b53b9506db
tags: | added: architecture-s39064 bugnameltc-169027 severity-high targetmilestone-inin--- |
Changed in ubuntu: | |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
affects: | ubuntu → linux (Ubuntu) |
Changed in ubuntu-z-systems: | |
status: | New → Triaged |
importance: | Undecided → High |
assignee: | nobody → Canonical Kernel Team (canonical-kernel-team) |
Changed in linux (Ubuntu): | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in linux (Ubuntu Bionic): | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in ubuntu-z-systems: | |
status: | Triaged → In Progress |
Changed in linux (Ubuntu): | |
status: | In Progress → Fix Released |
Changed in linux (Ubuntu Bionic): | |
status: | In Progress → Fix Released |
Changed in ubuntu-z-systems: | |
status: | In Progress → Fix Released |
tags: |
added: targetmilestone-inin1804 removed: targetmilestone-inin--- |
tags: | added: cscc |
I built a test kernel with commit 783c3b53b9506db 3e05daacfe34e02 87eebb09d8. The test kernel can be downloaded from: kernel. ubuntu. com/~jsalisbury /lp1777840
http://
Can you test this kernel and see if it resolves this bug?
Note about installing test kernels: unsigned .deb packages.
• If the test kernel is prior to 4.15(Bionic) you need to install the linux-image and linux-image-extra .deb packages.
• If the test kernel is 4.15(Bionic) or newer, you need to install the linux-modules, linux-modules-extra and linux-image-
Thanks in advance!