omitting BLISS_USE_GMP causes mysterious failures
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
bliss (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Precise |
Fix Released
|
Undecided
|
Unassigned | ||
Quantal |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
From http://
[Impact]
In versions 0.72-2 and 0.72-3, if the user
neglects to define the preprocessor symbol BLISS_USE_GMP when
compiling their code, it will build successfuly but segfault at
runtime. This is fixed in -4. The fix in -3 is needed for this to
work transparently.
bliss is a leaf package in Wheezy, but I've already had bug reports
(on the bugtracker of an upstream project) for -3.
[Test case]
Install libbliss-dev 0.72-3 (or probably -2, untested)
compile the attached C++ file (from the bliss source package) like
% g++ -o crashme -I/usr/
run on any input, e.g.
c An example graph.
p edge 4 5
n 2 1
e 1 2
e 4 1
e 2 3
e 2 4
e 3 4
The result is a segmentation fault.
I'm not running Ubuntu, but I have confirmation from Ubuntu users on 12.04 and 12.10 that this failure occurs there.
[Fix]
The fix 0.72-4.
Here is the debdiff, less the changelog stanzas.
diff -u bliss-0.
--- bliss-0.
+++ bliss-0.
@@ -15,7 +15,7 @@
$(CC) -fPIC -c $(CFLAGS) -o $@ $<
libbliss.so: $(GMPSHOBJS)
- $(CC) -shared -Wl,-soname,
+ $(CC) -shared -Wl,-soname,
ln -sf $(SOFULL) $(SONAME)
ln -sf $(SOFULL) libbliss.so
only in patch2:
unchanged:
--- bliss-0.
+++ bliss-0.72/defs.hh
@@ -23,6 +23,8 @@
along with Foobar. If not, see <http://
*/
+#undef BLISS_USE_GMP
+#define BLISS_USE_GMP
namespace bliss {
[ Regression Impact]
It is remotely possible (although I don't see how in this case) that any change to installed headers could cause user code to FTBFS. As far as I can tell, this will actually be an improvement over compiling fine and then segfaulting.
tags: |
added: verification-done removed: verification-needed |
For precise this also contains the change from 0.72-3 that cause the bliss shared library to be explicitly linked against GMP.
This change has been tested in 12.10. Of course I can produce a patch without it, if needed.