From a3c392cdde982ed3f9a5140cb460bf3c227e8ebd Mon Sep 17 00:00:00 2001 From: Banana-J Date: Sun, 28 Jan 2024 16:57:58 +1100 Subject: [PATCH] Fix xdcx infinite recursive calls (#404) * fix: Make the unused methods in leveldb.go in XDCxDAO to panic or return error if called * fix: apply the same fix in mongodb of the XDCxDAO as well --- XDCxDAO/leveldb.go | 9 +++++---- XDCxDAO/mongodb.go | 11 ++++++----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/XDCxDAO/leveldb.go b/XDCxDAO/leveldb.go index c77d1cd5f4..a302cecf9e 100644 --- a/XDCxDAO/leveldb.go +++ b/XDCxDAO/leveldb.go @@ -4,9 +4,10 @@ import ( "bytes" "encoding/hex" "errors" + "sync" + "github.com/XinFinOrg/XDPoSChain/common" "github.com/XinFinOrg/XDPoSChain/core/rawdb" - "sync" "github.com/XinFinOrg/XDPoSChain/ethdb" "github.com/XinFinOrg/XDPoSChain/log" @@ -171,13 +172,13 @@ func (db *BatchDatabase) Sync() error { } func (db *BatchDatabase) NewIterator(prefix []byte, start []byte) ethdb.Iterator { - return db.NewIterator(prefix, start) + panic("NewIterator from XDCxDAO leveldb is not supported") } func (db *BatchDatabase) Stat(property string) (string, error) { - return db.Stat(property) + return "", errNotSupported } func (db *BatchDatabase) Compact(start []byte, limit []byte) error { - return db.Compact(start, limit) + return errNotSupported } diff --git a/XDCxDAO/mongodb.go b/XDCxDAO/mongodb.go index 2745730fe5..53dee7585b 100644 --- a/XDCxDAO/mongodb.go +++ b/XDCxDAO/mongodb.go @@ -4,6 +4,9 @@ import ( "bytes" "encoding/hex" "fmt" + "strings" + "time" + "github.com/XinFinOrg/XDPoSChain/XDCx/tradingstate" "github.com/XinFinOrg/XDPoSChain/XDCxlending/lendingstate" "github.com/XinFinOrg/XDPoSChain/common" @@ -12,8 +15,6 @@ import ( "github.com/globalsign/mgo" "github.com/globalsign/mgo/bson" lru "github.com/hashicorp/golang-lru" - "strings" - "time" ) const ( @@ -873,15 +874,15 @@ func (db *MongoDatabase) Sync() error { } func (db *MongoDatabase) NewIterator(prefix []byte, start []byte) ethdb.Iterator { - return db.NewIterator(prefix, start) + panic("NewIterator from XDCxDAO mongodb is not supported") } func (db *MongoDatabase) Stat(property string) (string, error) { - return db.Stat(property) + return "", errNotSupported } func (db *MongoDatabase) Compact(start []byte, limit []byte) error { - return db.Compact(start, limit) + return errNotSupported } func (db *MongoDatabase) NewBatch() ethdb.Batch {