virtualbox-ose segfaults on 10.0

Joe Maloney jpm820 at gmail.com
Thu Dec 26 06:51:42 UTC 2013


I’ve been doing some more testing and your port works in FreeBSD 10.0 RC2 x64 as long as I don’t use KDE.  If using KDE I can get it to work without the segfault by unsetting QT_PLUGIN_PATH in Konsole.  

It does not work whatsoever with PCBSD 10 as of the p1-12-23-2013 release.  http://iso.cdn.pcbsd.org/10.0-RELEASE/amd64

I can’t seem to track down what’s so much different that it doesn’t work at all in PCBSD 10.  I’ve even started with just a plain session with no extra environment variables.  I suppose that part is not necessarily a problem with your port.  

I’m wondering if perhaps the QT_PLUGIN_PATH issue was solved it might also solve whatever is causing PCBSD not to work.  For testing purposes would compiling without hardening do any good, trying random versions of gcc?  Is there anything else I could try on my end to help track down that issue?  

Joe Maloney

On Dec 17, 2013, at 3:02 PM, Bernhard Fröhlich <decke at bluelife.at> wrote:

> Thanks a lot for your help! I have committed a patch now that should fix this
> issue once and for all.
> 
> http://svnweb.freebsd.org/ports?view=revision&revision=336768
> 
> The analysis has shown that the vbox buildsystem has a strange check as
> part of their hardening that strips away rpath for Hardened-R3
> binaries. It looks
> like that is supposed to protect against world writable RPATH paths which would
> allow a user to inject malicious shared objects. Our gcc48 path is definitely a
> safe place so I decided to disable that check for FreeBSD.
> 
> I will send that patch upstream and discuss the implications with the vbox
> developers to see if that has some additional risks.
> 
> 
> On Sat, Dec 14, 2013 at 1:25 AM, Joe Maloney <jpm820 at gmail.com> wrote:
>> [jmaloney at jm-desk-pc] ~% sudo ldd /usr/local/bin/VirtualBox
>> Password:
>> /usr/local/bin/VirtualBox:
>> libthr.so.3 => /lib/libthr.so.3 (0x800822000)
>> libstdc++.so.6 => /usr/local/lib/gcc46/libstdc++.so.6 (0x800a47000)
>> libm.so.5 => /lib/libm.so.5 (0x800d4b000)
>> libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x800f71000)
>> libc.so.7 => /lib/libc.so.7 (0x80117e000)
>> 
>> On Dec 13, 2013, at 5:02 PM, Bernhard Fröhlich <decke at bluelife.at> wrote:
>> 
>> 
>> Am 12.12.2013 21:24 schrieb "Joe Maloney" <jpm820 at gmail.com>:
>>> 
>>> I cannot get the qt4 interface to start in FreeBSD 10.  VboxManage seems
>>> to work fine.  This was just tested with the latest port a few hours ago
>>> after Makefile change 336267 Virtualbox 4.2.20.  Below is a backtrace.
>>> 
>>> Joe Maloney
>>> 
>>> [jmaloney at jm-desk-pc] ~% sudo gdb /usr/local/lib/virtualbox/VirtualBox
>>> GNU gdb 6.1.1 [FreeBSD]
>>> Copyright 2004 Free Software Foundation, Inc.
>>> GDB is free software, covered by the GNU General Public License, and you
>>> are
>>> welcome to change it and/or distribute copies of it under certain
>>> conditions.
>>> Type "show copying" to see the conditions.
>>> There is absolutely no warranty for GDB.  Type "show warranty" for
>>> details.
>>> This GDB was configured as "amd64-marcel-freebsd"...
>>> (gdb) run
>>> Starting program: /usr/local/lib/virtualbox/VirtualBox
>>> [New LWP 101456]
>>> [New Thread 801c06400 (LWP 101456/VirtualBox)]
>>> Type Manifest File: /root/.VirtualBox/xpti.dat
>>> nsNativeComponentLoader: autoregistering begins.
>>> nsNativeComponentLoader: autoregistering succeeded
>>> nNCL: registering deferred (0)
>>> [New Thread 801c11400 (LWP 100154/VirtualBox)]
>>> [New Thread 801c0b400 (LWP 101680/VirtualBox)]
>>> 
>>> Program received signal SIGSEGV, Segmentation fault.
>>> [Switching to Thread 801c06400 (LWP 101456/VirtualBox)]
>>> 0x0000000000000000 in ?? ()
>>> (gdb) backtrace
>>> #0  0x0000000000000000 in ?? ()
>>> #1  0x0000000800afc072 in __dynamic_cast (src_ptr=0x7fffffffc7d0,
>>> src_type=0x8080087c0, dst_type=0x808d1cea0, src2dst=0)
>>>    at ../../.././../gcc-4.6.4/libstdc++-v3/libsupc++/dyncast.cc:61
>>> #2  0x000000081142e759 in QtCurve::Style::eventFilter ()
>>> from /usr/local/lib/qt4/plugins/styles/qtcurve.so
>>> #3  0x0000000807c987cd in
>>> QCoreApplicationPrivate::sendThroughObjectEventFilters ()
>>> from /usr/local/lib/qt4/libQtCore.so.4
>>> #4  0x000000080822750a in QApplicationPrivate::notify_helper ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #5  0x000000080822a1f8 in QApplication::notify ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #6  0x0000000807c984e5 in QCoreApplication::notifyInternal ()
>>> from /usr/local/lib/qt4/libQtCore.so.4
>>> #7  0x0000000808266ec8 in QWidgetPrivate::propagatePaletteChange ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #8  0x000000080826baa1 in QWidget::setBackgroundRole ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #9  0x000000081142a33f in QtCurve::Style::polish ()
>>> from /usr/local/lib/qt4/plugins/styles/qtcurve.so
>>> #10 0x0000000808273e21 in QWidget::event ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #11 0x000000080864567f in QMenuBar::event ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #12 0x000000080822751b in QApplicationPrivate::notify_helper ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #13 0x000000080822a1f8 in QApplication::notify ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #14 0x0000000807c984e5 in QCoreApplication::notifyInternal ()
>>> from /usr/local/lib/qt4/libQtCore.so.4
>>> #15 0x000000080826965e in QWidget::ensurePolished ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #16 0x000000080826970f in QWidget::ensurePolished ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #17 0x000000080824f39d in QLayout::totalMinimumSize ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #18 0x0000000808273569 in QWidget::minimumSizeHint ()
>>> from /usr/local/lib/qt4/libQtGui.so.4
>>> #19 0x000000080548c8cc in UISelectorWindow::loadSettings
>>> (this=0x801ed4000)
>>> 
>>> at
>>> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.20/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp:135
>>> #20 0x0000000805485d4e in UISelectorWindow (this=0x801ed4000,
>>> ppSelf=0x805c98300, pParent=0x0, flags={i = -10976})
>>> 
>>> at
>>> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.20/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp:102
>>> #21 0x00000008053d32fa in VBoxGlobal::selectorWnd (this=0x805c981e0)
>>> from /usr/local/lib/virtualbox/VirtualBox.so
>>> #22 0x0000000805367f84 in TrustedMain (argc=1, argv=0x7fffffffd8b8) at
>>> qglobal.h:1510
>>> #23 0x00000000004024cb in SUPR3HardenedMain (pszProgName=0x404d14
>>> "VirtualBox", fFlags=1, argc=1, argv=0x7fffffffd8b8,
>>> envp=0x7fffffffd8c8)
>>> 
>>> at
>>> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.20/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp:346
>>> #24 0x00000000004013cf in main (argc=1, argv=0x7fffffffd8b8,
>>> envp=0x7fffffffd8c8)
>>> 
>>> at
>>> /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.20/src/VBox/Frontends/VirtualBox/src/hardenedmain.cpp:32
>> 
>> Could you please send me the output of: ldd /usr/local/binVirtualBox
>> 
>> 
> 
> 
> 
> -- 
> Bernhard Fröhlich
> http://www.bluelife.at/



More information about the freebsd-emulation mailing list