[prev in list] [next in list] [prev in thread] [next in thread] 

List:       konq-bugs
Subject:    Bug#35601: Konqueror crashes when the URL (or query string length?) exceeds 1984 characters.
From:       flexx () chello ! at
Date:       2001-11-30 18:06:07
[Download RAW message or body]

Package: konqueror
Version: KDE 2.2.2 
Severity: normal
Installed from:    SuSE RPMs
Compiler:          gcc 2.95.2
OS:                Linux
OS/Compiler notes: I installed gcc 2.95.3 in /usr/local, but AFAIK SuSE 7.1 was \
compiled using 2.95.2 (installed in /usr)

I encountered problems with long URLs when working with konqueror. When URL's (or \
their query stings) reach a certain length, strange things happen...

Konqueror 'flashes' up, but immediately shuts down again.
No crash handler, no error message, no core dump, nothing... but a return code of 1 \
(at least ;).

In the transcript I provide you can easily reproduce the error (assuming you have \
perl installed).

Some additional notes regarding the transcript:

* when I say 'works', I mean that konqueror starts and stays so. Some of the URL I \
fed it of cours yield only error messages (by konqueror, or my local squid...)

* when I say 'crashes', I mean that konqueror immediately shuts down as described \
above.

* when I say 'HUNG MY XFREE86!', I mean that (seemingly after pressing ALT-F4), my \
graphical console froze. PC Keyboard is frozen also. CTRL-ESC won't call KSysGuard, \
CTRL-ALT-Backspace does nothing, CTRL-ALT-DELETE does nothing (normally reboots my \
box). I was still able to use my vt420 connected via /dev/ttyS0 though. I could kill \
the konqueror process, and it's windows would turn all grey, but it would not close, \
X screen and keyboard still frozen. I could kill the bash I called the konqueror \
instance from, it would say 'TERMINATED', but still not react, Konqueror window still \
there. I then waited some 5 minutes to see if the window maybe started reacting \
again, but it never did.

* The xlib messages appeared only on some runs. On other runs the messages simply \
didn't occur. It somewhat seems that when you give the shell more to do before \
calling (or upon exiting) konqueror (like when using backticks or calling it from \
within perl), the messages appear more often.

* It's strange that it doesn't make a difference whether I gave 1984/1985 plus signs \
(+) or 1984/1985 times '%20' (that's a total of 5952/5955) characters passed to \
konqueror, so the error is obviously yielded after successfully urldecoding the URL \
string...

* It's even more puzzling that longer, valid URLs worked (see transcript), while the \
1985 plus signs NEVER worked.

* There are 'normal' real-world HTTP-URL's (in my case a call to a perl script with a \
very long SQL statement coded in the query-string) that yield the error. Being \
courious, I also tried them with netscape -- flawless...

What's happening here?
I hope my hints are helpful and someone will squash this one...


Cheers' & both thumbs up for KDE and also Konqueror (just don't max out on those URL \
lengths ;)! Alexander 'Flexx' Wessel

+++++++++++++++

I got my RPMs from ftp://ftp.suse.com/pub/linux/suse/ftp.suse.com/suse/i386/supplementary/KDE/update_for_7.1:


update_for_7.1/base# ls
.                                kdelibs-cups-2.2.0-35.rpm
..                               liblcms-1.06-50.rpm
.link                            libmng-0.9.3-12.rpm
audiofile-0.2.1-92.rpm           libogg-1.0rc2-16.rpm
kdebase-2.2.2-10.rpm             libvorbis-1.0rc2-16.rpm
kdebase-ksysguardd-2.2.2-10.rpm  libxml2-2.4.10-5.rpm
kdebase-nsplugin-2.2.2-10.rpm    libxslt-1.0.7-5.rpm
kdelibs-2.2.2-7.rpm              qt-2.3.2-10.rpm
kdelibs-artsd-2.2.2-7.rpm        qt-extensions-2.3.1-26.rpm

I use:

pc02100:~ # rpm -q xf86
xf86-4.1.0-48
# According to KControl / Information / X-Server:
# Vendor Release Number 40100000
# Version Number 11.0

pc02100:~ # uname -a
Linux pc02100 2.4.14 #5 Thu Nov 15 17:28:46 CET 2001 i686 unknown

pc02100:~ # konqueror --version
Qt: 2.3.2
KDE: 2.2.2
Konqueror: 2.2.2

pc02100:~ # echo $BASH_VERSION
2.04.0(1)-release


Following is a transcript of what I entered to yield the error (don't try this at \
home ;)

pc02100:~ # konqueror `perl -e 'print "+" x 1984'` # works - konqueror starts & stays
pc02100:~ # konqueror `perl -e 'print "+" x 1985'` # crashes silently - konqueror \
starts and immediately crashes pc02100:~ # konqueror `perl -e 'print "%20" x 1984'` # \
works - konqueror starts pc02100:~ # konqueror `perl -e 'print "%20" x 1985'` # \
crashes silently - konqueror starts and immediately crashes

pc02100:~ # konqueror `perl -e 'print "+" x 1985'` # crashes
Xlib: sequence lost (0x10000 > 0x19be) in reply type 0x0!
Xlib: sequence lost (0x10000 > 0x19be) in reply type 0x1!

pc02100:~ # echo `konqueror \`perl -e 'print q(%20) x 1985'\``
Xlib: unexpected async reply (sequence 0x1658)!
Xlib: unexpected async reply (sequence 0x1659)!
Xlib: unexpected async reply (sequence 0x1665)!
Xlib: unexpected async reply (sequence 0x1666)!
Xlib: unexpected async reply (sequence 0x1667)!
Xlib: unexpected async reply (sequence 0x1668)!
Xlib: sequence lost (0x10000 > 0x1855) in reply type 0x0!
Xlib: sequence lost (0x10000 > 0x1855) in reply type 0x20!
Xlib: sequence lost (0x10015 > 0x1855) in reply type 0x0!
Xlib: sequence lost (0x10000 > 0x1855) in reply type 0x0!
Xlib: sequence lost (0x10100 > 0x1855) in reply type 0x1!

pc02100:~ # echo `konqueror \`perl -e 'print q(%20) x 1985'\``

pc02100:~ # echo `konqueror \`perl -e 'print q(%20) x 1985'\``
Xlib: sequence lost (0x10000 > 0x167a) in reply type 0x0!
Xlib: sequence lost (0x10000 > 0x167a) in reply type 0x1!

pc02100:~ # echo `konqueror \`perl -e 'print q(%20) x 1985'\``
Xlib: unexpected async reply (sequence 0x146a)!
Xlib: unexpected async reply (sequence 0x146b)!
Xlib: unexpected async reply (sequence 0x1477)!
Xlib: unexpected async reply (sequence 0x1478)!
Xlib: unexpected async reply (sequence 0x1479)!
Xlib: unexpected async reply (sequence 0x147a)!
Xlib: unexpected async reply (sequence 0x150a)!
Xlib: unexpected async reply (sequence 0x150b)!
Xlib: unexpected async reply (sequence 0x150c)!
Xlib: unexpected async reply (sequence 0x150d)!
Xlib: unexpected async reply (sequence 0x1519)!
Xlib: unexpected async reply (sequence 0x151a)!
Xlib: unexpected async reply (sequence 0x151b)!
Xlib: unexpected async reply (sequence 0x151c)!
Xlib: sequence lost (0x10000 > 0x1667) in reply type 0x0!
Xlib: sequence lost (0x10000 > 0x1667) in reply type 0x20!
Xlib: sequence lost (0x10168 > 0x1667) in reply type 0x90!
Xlib: sequence lost (0x10016 > 0x1667) in reply type 0x0!
Xlib: sequence lost (0x10002 > 0x1667) in reply type 0x2!
Xlib: sequence lost (0x10862 > 0x1667) in reply type 0x1!

pc02100:~ # cat /usr/local/httpd/cgi-bin/demos/printenv
#!/usr/bin/perl
foreach(keys(%ENV)) {print "\n$_: $ENV{$_}"};

pc02100:~ # konqueror `perl -e 'print q(http://localhost/cgi-bin/demos/printenv?), \
q(%20) x 1984'` # strange.. WORKS! pc02100:~ # konqueror `perl -e 'print \
q(http://localhost/cgi-bin/demos/printenv?), q(%20) x 1985'` # strange.. WORKS! \
pc02100:~ # konqueror `perl -e 'print q(http://localhost/cgi-bin/demos/printenv?), \
q(%20) x 2000'` # strange.. HUNG MY XFREE86!

pc02100:~ # perl
print 'returned: ', system("konqueror \`perl -e 'print q(%20) x 1985'\`") / 256;
Xlib: unexpected async reply (sequence 0x146a)!
Xlib: unexpected async reply (sequence 0x146b)!
Xlib: unexpected async reply (sequence 0x1477)!
Xlib: unexpected async reply (sequence 0x1478)!
Xlib: unexpected async reply (sequence 0x1479)!
Xlib: unexpected async reply (sequence 0x147a)!
Xlib: unexpected async reply (sequence 0x150a)!
Xlib: unexpected async reply (sequence 0x150b)!
Xlib: unexpected async reply (sequence 0x150c)!
Xlib: unexpected async reply (sequence 0x150d)!
Xlib: unexpected async reply (sequence 0x1519)!
Xlib: unexpected async reply (sequence 0x151a)!
Xlib: unexpected async reply (sequence 0x151b)!
Xlib: unexpected async reply (sequence 0x151c)!
Xlib: sequence lost (0x10000 > 0x1667) in reply type 0x0!
Xlib: sequence lost (0x10000 > 0x1667) in reply type 0x20!
Xlib: sequence lost (0x10168 > 0x1667) in reply type 0x90!
Xlib: sequence lost (0x10018 > 0x1667) in reply type 0x0!
Xlib: sequence lost (0x10002 > 0x1667) in reply type 0x2!
returned: 1

pc02100:~ # perl
print 'returned: ', system("konqueror \`perl -e 'print q(%20) x 1985'\`") / 256;

pc02100:~ # perl
print 'returned: ', system("konqueror http://localhost") / 256;
returned: 0

(Submitted via bugs.kde.org)

_______________________________________________
Konq-bugs mailing list
Konq-bugs@mail.kde.org
http://mail.kde.org/mailman/listinfo/konq-bugs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic