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

List:       kde-commits
Subject:    KDE/kdelibs/khtml/java
From:       Nikolas Zimmermann <wildfox () kde ! org>
Date:       2006-02-28 16:15:24
Message-ID: 1141143324.163552.9687.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 514514 by wildfox:

Check arguments size, to avoid crashes in:
(this shouldn't happen at all, but it does...)

mozilla/dom/dom-html/hobj003a.html
mozilla/dom/dom-html/hobj013.html
mozilla/html_401/object_classid.html
mozilla/html_401/object_name.html
mozilla/html_401/object_archive.html
mozilla/html_401/object_codetype.html

Now these tests hang, and test_regression abort()'s
after the timeout is reached. Will investigate a bit more.

Reviewed by Koos.

CCMAIL: Koos Vriezen <koos.vriezen@xs4all.nl>


 M  +47 -17    kjavaappletserver.cpp  


--- trunk/KDE/kdelibs/khtml/java/kjavaappletserver.cpp #514513:514514
@@ -575,42 +575,72 @@
             return;
         case KJAS_JAVASCRIPT_EVENT:
             cmd = QLatin1String( "JS_Event" );
-            kDebug(6100) << "Javascript request: "<< contextID
-                          << " code: " << args[0] << endl;
+
+            if(!args.empty()) {
+                 kDebug(6100) << "Javascript request: "<< contextID
+                              << " code: " << args[0] << endl;
+            } else {
+                kError(6100) << "Expected args not to be empty!" << endl;
+            }
+
             break;
         case KJAS_GET_MEMBER:
         case KJAS_PUT_MEMBER:
         case KJAS_CALL_MEMBER: {
-            const int ticket = args[0].toInt();
-            JSStack::iterator it = d->jsstack.find(ticket);
-            if (it != d->jsstack.end()) {
-                kDebug(6100) << "slotJavaRequest: " << ticket << endl;
-                args.pop_front();
-                it.value()->args.operator=(args); // just in case ..
-                it.value()->ready = true;
-                it.value()->exit = true;
-            } else
-                kDebug(6100) << "Error: Missed return member data" << endl;
+            if(!args.empty()) {
+                const int ticket = args[0].toInt();
+                JSStack::iterator it = d->jsstack.find(ticket);
+                if (it != d->jsstack.end()) {
+                    kDebug(6100) << "slotJavaRequest: " << ticket << endl;
+                    args.pop_front();
+                    it.value()->args.operator=(args); // just in case ..
+                    it.value()->ready = true;
+                    it.value()->exit = true;
+                } else
+                    kDebug(6100) << "Error: Missed return member data" << endl;
+            } else {
+                kError(6100) << "Expected args not to be empty!" << endl;
+            }
             return;
         }
         case KJAS_AUDIOCLIP_PLAY:
             cmd = QLatin1String( "audioclip_play" );
-            kDebug(6100) << "Audio Play: url=" << args[0] << endl;
+            if(!args.empty())
+                kDebug(6100) << "Audio Play: url=" << args[0] << endl;
+            else
+                kError(6100) << "Expected args not to be empty!" << endl;
+
             break;
         case KJAS_AUDIOCLIP_LOOP:
             cmd = QLatin1String( "audioclip_loop" );
-            kDebug(6100) << "Audio Loop: url=" << args[0] << endl;
+            if(!args.empty())
+                kDebug(6100) << "Audio Loop: url=" << args[0] << endl;
+            else
+                kError(6100) << "Expected args not to be empty!" << endl;
+
             break;
         case KJAS_AUDIOCLIP_STOP:
             cmd = QLatin1String( "audioclip_stop" );
-            kDebug(6100) << "Audio Stop: url=" << args[0] << endl;
+            if(!args.empty())
+                kDebug(6100) << "Audio Stop: url=" << args[0] << endl;
+            else
+                kError(6100) << "Expected args not to be empty!" << endl;
+
             break;
         case KJAS_APPLET_STATE:
-            kDebug(6100) << "Applet State Notification for Applet " << args[0] << ". \
New state=" << args[1] << endl; +            if(args.size() > 1)
+                kDebug(6100) << "Applet State Notification for Applet " << args[0] \
<< ". New state=" << args[1] << endl; +            else
+                kError(6100) << "Expected args not to be empty!" << endl;
+
             cmd = QLatin1String( "AppletStateNotification" );
             break;
         case KJAS_APPLET_FAILED:
-            kDebug(6100) << "Applet " << args[0] << " Failed: " << args[1] << endl;
+            if(args.size() > 1)
+                kDebug(6100) << "Applet " << args[0] << " Failed: " << args[1] << \
endl; +            else
+                kError(6100) << "Expected args not to be empty!" << endl;
+            
             cmd = QLatin1String( "AppletFailed" );
             break;
         case KJAS_SECURITY_CONFIRM: {


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

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