Bug report #258
WMS getcapabilities may crash on parsing DOM
Status: | Closed | ||
---|---|---|---|
Priority: | Low | ||
Assignee: | Gavin Macaulay - | ||
Category: | Web Services clients/WMS | ||
Affected QGIS version: | Regression?: | No | |
Operating System: | Debian | Easy fix?: | No |
Pull Request or Patch supplied: | Resolution: | fixed | |
Crashes QGIS or corrupts data: | Copied to github as #: | 10317 |
Description
Connecting to http://aes.gsfc.nasa.gov/cgi-bin/wms makes QGIS to segfault.
OS: GNU/Linux x86
Qt: 4.1.2
QGIS: 05.09.2006 SVN.
[[QgsHttpTransaction]]::getSynchronously: Response received. Debug: qgshttptransaction.cpp: 59: (~QgsHttpTransaction) [[QgsHttpTransaction]]: deconstructing. [[QgsWmsProvider]]::getServerCapabilities: Converting to DOM. [[QgsWmsProvider]]::parseCapabilitiesDOM: entering. Segmentation fault
BT:
#0 0xb67cb27b in strlen () from /lib/tls/i686/cmov/libc.so.6 #3905 0xb679f2e4 in vfprintf () from /lib/tls/i686/cmov/libc.so.6 #3906 0xb67bca36 in vsnprintf () from /lib/tls/i686/cmov/libc.so.6 #3907 0xb7dd1eba in qvsnprintf () from /usr/lib/libQtCore.so.4 #3908 0xb7d9239b in qWarning () from /usr/lib/libQtCore.so.4 #3909 0xb46b06e0 in [[QgsWmsProvider]]::parseCapabilitiesDOM (this=0x823d580, xml=@0x823d5cc, capabilitiesProperty=@0x823d5d8) at qgswmsprovider.cpp:828 #3910 0xb46b487a in [[QgsWmsProvider]]::retrieveServerCapabilities (this=0x823d580, forceRefresh=false) at qgswmsprovider.cpp:666 #3911 0xb46b573f in [[QgsWmsProvider]]::supportedLayers (this=0x823d580, layers=@0xffffffff) at qgswmsprovider.cpp:195 #3912 0xb6b93517 in [[QgsServerSourceSelect]]::populateLayerList (this=0x816e028, wmsProvider=0xffffffff) at qgsserversourceselect.cpp:179 #3913 0xb6b95588 in [[QgsServerSourceSelect]]::on_btnConnect_clicked (this=0x816e028) at qgsserversourceselect.cpp:428 #10 0xb6c14971 in [[QgsServerSourceSelect]]::qt_metacall (this=0x816e028, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0xbfec1a5c) at qgsserversourceselect.moc.cpp:81 #3914 0xb7e332bd in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #3915 0xb7e334e9 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #3916 0xb799e5a5 in QAbstractButton::clicked () from /usr/lib/libQtGui.so.4 #3917 0xb7840e06 in QButtonGroup::id () from /usr/lib/libQtGui.so.4 #3918 0xb7840ffd in QAbstractButton::mouseReleaseEvent () from /usr/lib/libQtGui.so.4 #3919 0xb767deec in QWidget::event () from /usr/lib/libQtGui.so.4 #3920 0xb7841426 in QAbstractButton::event () from /usr/lib/libQtGui.so.4 #3921 0xb78a297c in QPushButton::event () from /usr/lib/libQtGui.so.4 #3922 0xb763e7c5 in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4 #3923 0xb763fa5a in QApplication::notify () from /usr/lib/libQtGui.so.4 #3924 0xb7690e7d in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4 #3925 0xb7690568 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4 #3926 0xb76a184e in non-virtual thunk to QDesktopWidget::~QDesktopWidget() () from /usr/lib/libQtGui.so.4 #3927 0xb7e2568a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4 #3928 0xb7e2589d in QEventLoop::exec () from /usr/lib/libQtCore.so.4 #3929 0xb790b0e6 in QDialog::exec () from /usr/lib/libQtGui.so.4 #3930 0xb6a6c6eb in [[QgisApp]]::addWmsLayer (this=0x80df568) at qgisapp.cpp:1968 #3931 0xb6c0cf41 in [[QgisApp]]::qt_metacall (this=0x80df568, _c=QMetaObject::InvokeMetaMethod, _id=83, _a=0xbfec2acc) at qgisapp.moc.cpp:294 #3932 0xb7e332bd in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #3933 0xb7e334e9 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #3934 0xb763a069 in QAction::triggered () from /usr/lib/libQtGui.so.4 #3935 0xb763aa07 in QAction::activate () from /usr/lib/libQtGui.so.4 #3936 0xb78d859a in QToolButton::nextCheckState () from /usr/lib/libQtGui.so.4 #3937 0xb7840dc9 in QButtonGroup::id () from /usr/lib/libQtGui.so.4 #3938 0xb7840ffd in QAbstractButton::mouseReleaseEvent () from /usr/lib/libQtGui.so.4 #36 0xb767deec in QWidget::event () from /usr/lib/libQtGui.so.4 #37 0xb7841426 in QAbstractButton::event () from /usr/lib/libQtGui.so.4 #38 0xb78d8344 in QToolButton::event () from /usr/lib/libQtGui.so.4 #39 0xb763e7c5 in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4 #40 0xb763fa5a in QApplication::notify () from /usr/lib/libQtGui.so.4 #41 0xb7690e7d in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4 #42 0xb7690568 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4 #43 0xb76a184e in non-virtual thunk to QDesktopWidget::~QDesktopWidget() () from /usr/lib/libQtGui.so.4 #44 0xb7e2568a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4 #45 0xb7e2589d in QEventLoop::exec () from /usr/lib/libQtCore.so.4 #46 0xb7e27fe7 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4 #47 0xb763e565 in QApplication::exec () from /usr/lib/libQtGui.so.4 #48 0x0804c729 in main (argc=1, argv=0xbfec38a4) at main.cpp:604
History
#1 Updated by Gavin Macaulay - over 18 years ago
That's a really big capabilities document - about 2MB, and qqis is failing when trying to print it out in a bit of debugging code. If you compile with debugging turned off, the problem might go away (then again it might not :).
#2 Updated by Gavin Macaulay - over 18 years ago
- Resolution set to fixed
- Status changed from Open to Closed
Fixed in SVN 9830a34e (SVN r5766). Problem was with the use of the qWarning function, which only has space for a string of max length 8192 bytes. A second problem exists in Qt4.1.2 and later (will be fixed in qt4.2.0) that could of been contributing to the problem. This commit works around the Qt4.1.2 problem, and uses the QgsLogger class instead of qWarning, which doesn't have the 8192 character limitation.
#3 Updated by Anonymous over 15 years ago
Milestone Version 0.8 deleted