Bug 1036981 - adonthell FTBFS if "-Werror=format-security" flag is used
Summary: adonthell FTBFS if "-Werror=format-security" flag is used
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: adonthell
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Mathieu Bridon
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1038083
TreeView+ depends on / blocked
 
Reported: 2013-12-03 02:50 UTC by Dhiru Kholia
Modified: 2014-03-25 03:44 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-12-09 09:46:14 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Dhiru Kholia 2013-12-03 02:50:40 UTC
Description of problem
----------------------

adonthell fails to build if "-Werror=format-security" flag is used.

...

py_adonthell_wrap.cc:870:42: error: format not a string literal and no format arguments [-Werror=format-security]

...

We are working on a proposal to enable "-Werror=format-security" for all
packages. Once this flag is enabled, GCC will refuse to compile code that could
be vulnerable to a string format security flaw. For more details, please see
https://fedorahosted.org/fesco/ticket/1185 page.

To understand why it is important to fix this, please see
https://fedoraproject.org/wiki/Format-Security-FAQ page.

How to fix this
---------------

The fix for these errors is quite simple. It's a matter of changing a
line like,

   printf(foo);

to read,

   printf("%s", foo);

That's it.

Please fix this issue in rawhide with a patch (which you should submit
to upstream to merge moving forward). Please do a new build with the
fix in rawhide. Other releases do not need to be directly fixed, but
there should be no harm in pushing out this fix/patch with other needed
changes to those branches.

In the event you don't fix this bug before the next mass rebuild,
provenpackagers may step in and update your package(s) to fix this
issue.

How reproducible
----------------

Build adonthell-0.3.5-0.16.fc20.src.rpm with "-Werror=format-security" flag to reproduce the problem.

To make this process easier, you can use a modified "redhat-rpm-config" package
from http://people.fedoraproject.org/~halfie/artifacts/redhat-rpm-config/ URL.

$ sha256sum redhat-rpm-config-9.1.0-56.fc20.*
faad7594b2080fe76497d0ce50808c905a93dd7b41c1defdde5ca57e3833d3d2  redhat-rpm-config-9.1.0-56.fc20.noarch.rpm
5aa9357174305c7285ffdbc92d7ffe1c07a8a95d5459b930461308f5aad75413  redhat-rpm-config-9.1.0-56.fc20.src.rpm

Comment 1 Mathieu Bridon 2013-12-04 07:42:59 UTC
Thanks for the bug report Dhiru!

I think I've figured out a way to fix it for the package, does that look right to you?

=============================================================================
From f3bd75479aef611e23c5f82ab2299b0ce15078e0 Mon Sep 17 00:00:00 2001
From: Mathieu Bridon <bochecha>
Date: Wed, 4 Dec 2013 12:36:02 +0800
Subject: [PATCH] Fix build with -Werror=format-security

---
 src/py_adonthell_wrap.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/py_adonthell_wrap.cc b/src/py_adonthell_wrap.cc
index 048f0af..2a73207 100644
--- a/src/py_adonthell_wrap.cc
+++ b/src/py_adonthell_wrap.cc
@@ -867,7 +867,7 @@ SWIG_Python_AddErrorMsg(const char* mesg)
     Py_DECREF(old_str);
     Py_DECREF(value);
   } else {
-    PyErr_Format(PyExc_RuntimeError, mesg);
+    PyErr_Format(PyExc_RuntimeError, "%s", mesg);
   }
 }

-- 
1.8.4.2
=============================================================================

Unfortunately, that's not a patch I can send upstream, as this file is generated by the Makefile, it's not in the CVS source tree.

I think there's something to fix in the code generated by Swig, here. :-/

Comment 2 Mathieu Bridon 2013-12-09 09:46:14 UTC
Should be fixed in Rawhide.


Note You need to log in before you can comment on or make changes to this bug.