Skip to content

Commit 271f7aa

Browse files
committed
Fix DFL-2447: Can't add keys with "\" in storage.
1 parent e8fd81f commit 271f7aa

File tree

1 file changed

+3
-24
lines changed

1 file changed

+3
-24
lines changed

src/storage/data-storages.js

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -77,27 +77,6 @@ cls.StorageDataBase = new function()
7777
return item;
7878
};
7979

80-
this._encode = (function()
81-
{
82-
/* from the ecma spec
83-
\u000A Line Feed <LF>
84-
\u000D Carriage Retu rn <CR>
85-
\u2028 Line separator <LS>
86-
\u2029 Paragraph separator <PS>
87-
*/
88-
var
89-
re = /(\u000A)|(\u000D)|(\u2028)|(\u2029)/g,
90-
fn = function(match, NL, CR, LS, PS)
91-
{
92-
return NL && "\\u000A" || CR && "\\u000D" || LS && "\\u2028" || PS && "\\u2029";
93-
};
94-
95-
return function(str)
96-
{
97-
return str.replace(re, fn).replace(/\"/g, "\\\"");
98-
}
99-
})();
100-
10180
this.set_item = function(rt_id, key, value, success_callback)
10281
{
10382
var item = this.get_item(rt_id, key);
@@ -116,8 +95,8 @@ cls.StorageDataBase = new function()
11695
}
11796
);
11897
}
119-
var script = "local_storage.set_item(\"" + this._encode(item.key) + "\",\"" +
120-
this._encode(value) + "\",\"" + item.type + "\")";
98+
var script = "local_storage.set_item(\"" + window.helpers.escape_input(item.key) + "\",\"" +
99+
window.helpers.escape_input(value) + "\",\"" + item.type + "\")";
121100
var tag = tagManager.set_callback(this, this._handle_default,
122101
[success_callback, "failed set_item in LocalStorageData"]);
123102
services['ecmascript-debugger'].requestEval(tag,
@@ -131,7 +110,7 @@ cls.StorageDataBase = new function()
131110
var item = this.get_item(rt_id, key);
132111
if (item)
133112
{
134-
var script = "local_storage.remove_item(\"" + item.key + "\")";
113+
var script = "local_storage.remove_item(\"" + window.helpers.escape_input(item.key) + "\")";
135114
var tag = tagManager.set_callback(this, this._handle_remove,
136115
[success_callback, "failed remove_item in LocalStorageData", rt_id, item.key]);
137116
services['ecmascript-debugger'].requestEval(tag,

0 commit comments

Comments
 (0)