[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/trunk r10424: Don't allow ActionSetVariabl
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] /srv/bzr/gnash/trunk r10424: Don't allow ActionSetVariable and ActionSetMember to use empty strings for variable/member name, and log an ASerror if it is attempted. |
Date: |
Sun, 14 Dec 2008 14:57:23 +0100 |
User-agent: |
Bazaar (1.5) |
------------------------------------------------------------
revno: 10424
committer: Sandro Santilli <address@hidden>
branch nick: trunk
timestamp: Sun 2008-12-14 14:57:23 +0100
message:
Don't allow ActionSetVariable and ActionSetMember to use empty strings for
variable/member name, and log an ASerror if it is attempted.
modified:
libcore/vm/ASHandlers.cpp
testsuite/actionscript.all/array.as
=== modified file 'libcore/vm/ASHandlers.cpp'
--- a/libcore/vm/ASHandlers.cpp 2008-12-09 09:04:55 +0000
+++ b/libcore/vm/ASHandlers.cpp 2008-12-14 13:57:23 +0000
@@ -1033,6 +1033,15 @@
as_environment& env = thread.env;
const std::string& name = env.top(1).to_string();
+ if ( name.empty() )
+ {
+ IF_VERBOSE_ASCODING_ERRORS (
+ // Invalid object, can't set.
+ log_aserror(_("ActionSetVariable: %s=%s: variable name evaluates
to invalid (empty) string"),
+ env.top(1),
+ env.top(0));
+ );
+ }
thread.setVariable(name, env.top(0));
IF_VERBOSE_ACTION (
@@ -3245,7 +3254,17 @@
const std::string& member_name = env.top(1).to_string();
const as_value& member_value = env.top(0);
- if (obj)
+ if ( member_name.empty() )
+ {
+ IF_VERBOSE_ASCODING_ERRORS (
+ // Invalid object, can't set.
+ log_aserror(_("ActionSetMember: %s.%s=%s: member name evaluates to
invalid (empty) string"),
+ env.top(2),
+ env.top(1),
+ env.top(0));
+ );
+ }
+ else if (obj)
{
thread.setObjectMember(*(obj.get()), member_name, member_value);
=== modified file 'testsuite/actionscript.all/array.as'
--- a/testsuite/actionscript.all/array.as 2008-12-14 01:10:00 +0000
+++ b/testsuite/actionscript.all/array.as 2008-12-14 13:57:23 +0000
@@ -416,6 +416,10 @@
check_equals(sparse[3], 3); // crawl inheritance chain !
delete Array.prototype[3];
+c = []; c[''] = 2;
+check_equals(c.length, 0);
+check_equals(typeof(c['']), 'undefined');
+
//-----------------------------------------------------
// Test Array.pop()
//-----------------------------------------------------
@@ -1466,11 +1470,11 @@
#if OUTPUT_VERSION < 6
- check_totals(497);
+ check_totals(499);
#else
# if OUTPUT_VERSION < 7
- check_totals(558);
+ check_totals(560);
# else
- check_totals(568);
+ check_totals(570);
# endif
#endif
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/trunk r10424: Don't allow ActionSetVariable and ActionSetMember to use empty strings for variable/member name, and log an ASerror if it is attempted.,
Sandro Santilli <=