зеркало из https://github.com/mozilla/gecko-dev.git
Bug 421715: canvas crash passing undefined to putImageData, r+a=vlad
This commit is contained in:
Родитель
ac80174534
Коммит
be6fb851ef
|
@ -0,0 +1,41 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript">
|
||||
function stringify(a) {
|
||||
if (a)
|
||||
return a.toSource();
|
||||
return ''+a;
|
||||
}
|
||||
var args = [undefined, null, [], {}, 0, "0"];
|
||||
var stringArgs = args.map(stringify);
|
||||
|
||||
function test_method(context, method, arity) {
|
||||
function testParams(existingParams, depth) {
|
||||
for each (var arg in stringArgs) {
|
||||
var code = "context[method](" + existingParams + arg + ")";
|
||||
try {
|
||||
eval(code);
|
||||
} catch (ex) {
|
||||
// Exceptions are expected
|
||||
}
|
||||
|
||||
if (depth < arity)
|
||||
testParams(existingParams + arg + ",", depth + 1);
|
||||
}
|
||||
}
|
||||
testParams("", 1);
|
||||
}
|
||||
|
||||
function startTest() {
|
||||
var canvas = document.getElementById("img");
|
||||
var context = canvas.getContext('2d');;
|
||||
test_method(context, "getImageData", 4);
|
||||
test_method(context, "putImageData", 3);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="startTest()">
|
||||
<canvas id="img">No canvas support.</canvas>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1 @@
|
|||
load 421715-1.html
|
|
@ -2548,6 +2548,9 @@ nsCanvasRenderingContext2D::PutImageData()
|
|||
if (!JS_ConvertArguments (ctx, argc, argv, "ojj", &dataObject, &x, &y))
|
||||
return NS_ERROR_DOM_SYNTAX_ERR;
|
||||
|
||||
if (!dataObject)
|
||||
return NS_ERROR_DOM_SYNTAX_ERR;
|
||||
|
||||
int32 w, h;
|
||||
JSObject *dataArray;
|
||||
jsval v;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
include ../../testing/crashtest/sanity/crashtests.list
|
||||
|
||||
include ../../content/base/crashtests/crashtests.list
|
||||
include ../../content/canvas/crashtests/crashtests.list
|
||||
include ../../content/html/document/crashtests/crashtests.list
|
||||
include ../../content/html/content/crashtests/crashtests.list
|
||||
include ../../content/svg/content/src/crashtests/crashtests.list
|
||||
|
|
Загрузка…
Ссылка в новой задаче