as segfault with invalid -march= option

Bug #1781242 reported by bugproxy on 2018-07-11
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu on IBM z Systems
Canonical Foundations Team
binutils (Ubuntu)
Skipper Bug Screeners

Bug Description


 * as segfaults, instead of exiting gracefully, when one specifies unsupported arch option (ie. one from future - cause xenial did not support z14)
 * this is bad, as detection fails around supported march options - as if binutils are completely broken, rather than just not supporting this or that CPU level of optimisations.

[Test Case]

Bad result:
 $ as -march=foo
Segmentation fault

Expected result:
# as -march=foo
Assembler messages:
Error: invalid switch -march=foo
Error: unrecognized option -march=foo

[Regression Potential]

 * The result is still a failure condition, but with a proper exit code and standard error messages, rather than an unexplainable generic segfault.

[Other Info]

 * Original bug report

The GNU assembler segfaults with an invalid -march= option

Contact Information = n/a

---uname output---

Machine Type = n/a

A debugger is not configured

---Steps to Reproduce---
 $ as -march=foo
Segmentation fault

Expected result:
# as -march=foo
Assembler messages:
Error: invalid switch -march=foo
Error: unrecognized option -march=foo

Userspace tool common name: as

The userspace tool has the following bit modes: 64

Userspace rpm: binutils-2.26.1-1ubuntu1~16.04.6

Userspace tool obtained from project website: na

*Additional Instructions for n/a:
-Attach ltrace and strace of userspace application.

The problem is not critical since usually 'as' is invoked through the gcc driver which itself errors out for wrong -march= options. It will only be a problem if somebody builds a more recent GCC from source and uses an -march= option for a machine not supported by the default binutils.

Please consider integrating the attached patch into 16.04 binutils.

The problem has been fixed in later binutils already. Ubuntu 18.04 does not appear to be affected.

--> Package has to set corectly by Canonical

bugproxy (bugproxy) wrote : Patch

Default Comment by Bridge

tags: added: architecture-s39064 bugnameltc-169493 severity-low targetmilestone-inin16044
Changed in ubuntu:
assignee: nobody → Skipper Bug Screeners (skipper-screen-team)
affects: ubuntu → linux (Ubuntu)
affects: linux (Ubuntu) → binutils (Ubuntu)
Changed in ubuntu-z-systems:
status: New → Triaged
importance: Undecided → Low
assignee: nobody → Canonical Foundations Team (canonical-foundations)
Frank Heimes (frank-heimes) wrote :

Issue occurs on Xenial only (not Artful and also not on Bionic).

Dimitri John Ledkov (xnox) wrote :

In unapproved queue, waiting review and approval.

description: updated
Changed in binutils (Ubuntu):
status: New → Fix Released
Changed in binutils (Ubuntu Xenial):
status: New → In Progress
milestone: none → xenial-updates
Changed in ubuntu-z-systems:
status: Triaged → In Progress
description: updated

Hello bugproxy, or anyone else affected,

Accepted binutils into xenial-proposed. The package will build now and be available at in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-xenial to verification-done-xenial. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-xenial. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at . Thank you in advance!

Changed in binutils (Ubuntu Xenial):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-xenial
Changed in ubuntu-z-systems:
status: In Progress → Fix Committed
Frank Heimes (frank-heimes) wrote :

Successfully verified on xenial:

ubuntu@hwe0001:~$ apt-cache policy binutils
  Installed: 2.26.1-1ubuntu1~16.04.7
  Candidate: 2.26.1-1ubuntu1~16.04.7
  Version table:
 *** 2.26.1-1ubuntu1~16.04.7 500
        500 xenial-proposed/main s390x Packages
        100 /var/lib/dpkg/status
     2.26.1-1ubuntu1~16.04.6 500
        500 xenial-updates/main s390x Packages
        500 xenial-security/main s390x Packages
     2.26-8ubuntu2 500
        500 xenial/main s390x Packages
ubuntu@hwe0001:~$ as -march=foo
Assembler messages:
Error: invalid switch -march=foo
Error: unrecognized option -march=foo
ubuntu@hwe0001:~$ as -march=
Assembler messages:
Error: invalid switch -march=
Error: unrecognized option -march=

Switching the verification tags accordingly ...

tags: added: verification-done verification-done-xenial
removed: verification-needed verification-needed-xenial

The verification of the Stable Release Update for binutils has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package binutils - 2.26.1-1ubuntu1~16.04.7

binutils (2.26.1-1ubuntu1~16.04.7) xenial; urgency=medium

  * binutils-march-fix.patch: Fix -march= option parsing bound check. LP: #1781242

 -- Dimitri John Ledkov <email address hidden> Thu, 30 Aug 2018 14:39:04 +0100

Changed in binutils (Ubuntu Xenial):
status: Fix Committed → Fix Released
Changed in ubuntu-z-systems:
status: Fix Committed → Fix Released

------- Comment From <email address hidden> 2018-09-20 05:06 EDT-------
IBM Bugzilla status -> closed, Fix Released by Canonical

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments