2009-03-01 Larry Ewing <lewing@novell.com>
authorlevin@chromium.org <levin@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 2 Mar 2009 00:41:37 +0000 (00:41 +0000)
committerlevin@chromium.org <levin@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 2 Mar 2009 00:41:37 +0000 (00:41 +0000)
        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=24080
        NPN_GetValue casting to the wrong type and writing outside bounds

        Make sure to cast the value to the correct type so that only
        memory owned by the value is written to.

        * plugins/gtk/PluginViewGtk.cpp (PluginView::getValueStatic):
        * plugins/qt/PluginViewQt.cpp (PluginView::getValueStatic):
        * plugins/mac/PluginViewMac.cpp (PluginView::getValueStatic):
        (PluginView::getValue):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@41346 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/plugins/gtk/PluginViewGtk.cpp
WebCore/plugins/mac/PluginViewMac.cpp
WebCore/plugins/qt/PluginViewQt.cpp

index ddbcb6d8dca53d630296ed67e104712be4438a1c..4ff8ac7d4fbfea03cf6c8a18bf8454697c046e94 100644 (file)
@@ -1,3 +1,18 @@
+2009-03-01  Larry Ewing  <lewing@novell.com>
+
+        Reviewed by Alexey Proskuryakov.
+
+        https://bugs.webkit.org/show_bug.cgi?id=24080
+        NPN_GetValue casting to the wrong type and writing outside bounds
+
+        Make sure to cast the value to the correct type so that only
+        memory owned by the value is written to.
+
+        * plugins/gtk/PluginViewGtk.cpp (PluginView::getValueStatic): 
+        * plugins/qt/PluginViewQt.cpp (PluginView::getValueStatic):
+        * plugins/mac/PluginViewMac.cpp (PluginView::getValueStatic): 
+        (PluginView::getValue):
+
 2009-03-01  Jeremy Moskovich  <jeremy@chromium.org>
 
         Reviewed by Simon Fraser.
index 2b93e5614e70d7b0c994a87e390717bd69de36a5..5ec515b8d1d307c75cc10effcc57d0d41ab99e22 100644 (file)
@@ -349,22 +349,22 @@ NPError PluginView::getValueStatic(NPNVariable variable, void* value)
     switch (variable) {
     case NPNVToolkit:
 #if PLATFORM(GTK)
-        *((uint32 *)value) = 2;
+        *static_cast<uint32*>(value) = 2;
 #else
-        *((uint32 *)value) = 0;
+        *static_cast<uint32*>(value) = 0;
 #endif
         return NPERR_NO_ERROR;
 
     case NPNVSupportsXEmbedBool:
 #if PLATFORM(X11)
-        *((uint32 *)value) = true;
+        *static_cast<NPBool*>(value) = true;
 #else
-        *((uint32 *)value) = false;
+        *static_cast<NPBool*>(value) = false;
 #endif
         return NPERR_NO_ERROR;
 
     case NPNVjavascriptEnabledBool:
-        *((uint32 *)value) = true;
+        *static_cast<NPBool*>(value) = true;
         return NPERR_NO_ERROR;
 
     default:
index c95e854c4932d033e6f7e14dd98e14c2d184d57b..ad1084454384fd0d1dc4fb70f8c5c5e14e269637 100644 (file)
@@ -222,11 +222,11 @@ NPError PluginView::getValueStatic(NPNVariable variable, void* value)
 
     switch (variable) {
     case NPNVToolkit:
-        *((uint32 *)value) = 0;
+        *static_cast<uint32*>(value) = 0;
         return NPERR_NO_ERROR;
 
     case NPNVjavascriptEnabledBool:
-        *((uint32 *)value) = true;
+        *static_cast<NPBool*>(value) = true;
         return NPERR_NO_ERROR;
 
     default:
@@ -277,7 +277,7 @@ NPError PluginView::getValue(NPNVariable variable, void* value)
     }
 
     case NPNVsupportsCoreGraphicsBool:
-        *((uint32 *)value) = true;
+        *static_cast<NPBool*>(value) = true;
         return NPERR_NO_ERROR;
 
     default:
index 4982d08ee5390c61b1e9c13d379a78ef81776eb7..a2a800aba75dced0511ed93e33515b5cbd26a9e3 100644 (file)
@@ -301,15 +301,15 @@ NPError PluginView::getValueStatic(NPNVariable variable, void* value)
 {
     switch (variable) {
     case NPNVToolkit:
-        *((uint32 *)value) = 0;
+        *static_cast<uint32*>(value) = 0;
         return NPERR_NO_ERROR;
 
     case NPNVSupportsXEmbedBool:
-        *((uint32 *)value) = true;
+        *static_cast<NPBool*>(value) = true;
         return NPERR_NO_ERROR;
 
     case NPNVjavascriptEnabledBool:
-        *((uint32 *)value) = true;
+        *static_cast<NPBool*>(value) = true;
         return NPERR_NO_ERROR;
 
     default: