fix SEA shuffle to ignore good GUN data

Sea
This commit is contained in:
Mark Nadal 2019-01-04 04:08:53 -08:00 committed by GitHub
commit 41f45a97a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 3 deletions

View File

@ -1,6 +1,6 @@
{
"name": "gun",
"version": "0.9.999995",
"version": "0.9.999996",
"description": "A realtime, decentralized, offline-first, graph data synchronization engine.",
"main": "index.js",
"browser": "gun.min.js",

7
sea.js
View File

@ -1273,8 +1273,10 @@
}
SEA.opt.unpack = function(data, key, node){
if(u === data){ return }
if(data === node[key]){ return data }
if(data && data['#'] && rel_is(data) === rel_is(node[key])){ return data }
var tmp = data, soul = Gun.node.soul(node), s = Gun.state.is(node, key);
if(tmp && 4 === tmp.length && soul === tmp[0] && key === tmp[1] && s === tmp[3]){
if(tmp && 4 === tmp.length && soul === tmp[0] && key === tmp[1] && fl(s) === fl(tmp[3])){
return tmp[2];
}
if(s < SEA.opt.shuffle_attack){
@ -1283,6 +1285,9 @@
}
SEA.opt.shuffle_attack = 1546329600000; // Jan 1, 2019
var noop = {}, u;
var fl = Math.floor; // TODO: Still need to fix inconsistent state issue.
var rel_is = Gun.val.rel.is;
// TODO: Potential bug? If pub/priv key starts with `-`? IDK how possible.
})(USE, './index');
}());

View File

@ -230,8 +230,10 @@
}
SEA.opt.unpack = function(data, key, node){
if(u === data){ return }
if(data === node[key]){ return data }
if(data && data['#'] && rel_is(data) === rel_is(node[key])){ return data }
var tmp = data, soul = Gun.node.soul(node), s = Gun.state.is(node, key);
if(tmp && 4 === tmp.length && soul === tmp[0] && key === tmp[1] && s === tmp[3]){
if(tmp && 4 === tmp.length && soul === tmp[0] && key === tmp[1] && fl(s) === fl(tmp[3])){
return tmp[2];
}
if(s < SEA.opt.shuffle_attack){
@ -240,5 +242,8 @@
}
SEA.opt.shuffle_attack = 1546329600000; // Jan 1, 2019
var noop = {}, u;
var fl = Math.floor; // TODO: Still need to fix inconsistent state issue.
var rel_is = Gun.val.rel.is;
// TODO: Potential bug? If pub/priv key starts with `-`? IDK how possible.