diff --git a/core/chain_manager.go b/core/chain_manager.go index 308e958fe9d1242047f6460dbba30508f1bb5914..54f1ced8cad4b16e5b1697071a742eafc1158ce6 100644 --- a/core/chain_manager.go +++ b/core/chain_manager.go @@ -168,7 +168,7 @@ func (bc *ChainManager) NewBlock(coinbase []byte) *types.Block { var root []byte parentHash := ZeroHash256 - if bc.CurrentBlock != nil { + if bc.currentBlock != nil { root = bc.currentBlock.Header().Root parentHash = bc.lastBlockHash } diff --git a/crypto/secp256k1/secp256.go b/crypto/secp256k1/secp256.go index c1e37629e0c386bf0bdd9ee8af1369ce99762a09..4864e8d09a98e3178cee89a2b93350da4a5bfa2f 100644 --- a/crypto/secp256k1/secp256.go +++ b/crypto/secp256k1/secp256.go @@ -15,8 +15,9 @@ import "C" import ( "bytes" "errors" - "github.com/ethereum/go-ethereum/crypto/randentropy" "unsafe" + + "github.com/ethereum/go-ethereum/crypto/randentropy" ) //#define USE_FIELD_5X64 @@ -85,6 +86,10 @@ func GenerateKeyPair() ([]byte, []byte) { } func GeneratePubKey(seckey []byte) ([]byte, error) { + if err := VerifySeckeyValidity(seckey); err != nil { + return nil, err + } + pubkey_len := C.int(65) const seckey_len = 32 diff --git a/p2p/server.go b/p2p/server.go index e510be521be2cf70aa8b27b6fc5e46963f907990..35b584a273160abd60487ad47d357fba97d0f69c 100644 --- a/p2p/server.go +++ b/p2p/server.go @@ -436,15 +436,15 @@ func (self *BlacklistMap) Exists(pubkey []byte) (ok bool) { } func (self *BlacklistMap) Put(pubkey []byte) error { - self.lock.RLock() - defer self.lock.RUnlock() + self.lock.Lock() + defer self.lock.Unlock() self.blacklist[string(pubkey)] = true return nil } func (self *BlacklistMap) Delete(pubkey []byte) error { - self.lock.RLock() - defer self.lock.RUnlock() + self.lock.Lock() + defer self.lock.Unlock() delete(self.blacklist, string(pubkey)) return nil } diff --git a/rpc/args.go b/rpc/args.go index 84b076d4adc7f952829b86738b7f3ef19d9fd467..12e3103bcf8b1100113ace0f1a2b3683f2ae319e 100644 --- a/rpc/args.go +++ b/rpc/args.go @@ -43,7 +43,7 @@ type PushTxArgs struct { func (obj *PushTxArgs) UnmarshalJSON(b []byte) (err error) { arg0 := "" - if err = json.Unmarshal(b, arg0); err == nil { + if err = json.Unmarshal(b, &arg0); err == nil { obj.Tx = arg0 return } @@ -82,7 +82,7 @@ type GetStateArgs struct { func (obj *GetStateArgs) UnmarshalJSON(b []byte) (err error) { arg0 := "" - if err = json.Unmarshal(b, arg0); err == nil { + if err = json.Unmarshal(b, &arg0); err == nil { obj.Address = arg0 return } @@ -114,7 +114,7 @@ type GetTxCountArgs struct { func (obj *GetTxCountArgs) UnmarshalJSON(b []byte) (err error) { arg0 := "" - if err = json.Unmarshal(b, arg0); err == nil { + if err = json.Unmarshal(b, &arg0); err == nil { obj.Address = arg0 return } diff --git a/rpc/http/server.go b/rpc/http/server.go index 10c8fa8138d95a42b6c4a3d157d611c606bb0dfd..dd6ba68e3231e32922a12f7ca137fd3e284000e0 100644 --- a/rpc/http/server.go +++ b/rpc/http/server.go @@ -30,7 +30,7 @@ var rpchttplogger = logger.NewLogger("RPC-HTTP") var JSON rpc.JsonWrapper func NewRpcHttpServer(pipe *xeth.XEth, port int) (*RpcHttpServer, error) { - sport := fmt.Sprintf(":%d", port) + sport := fmt.Sprintf("127.0.0.1:%d", port) l, err := net.Listen("tcp", sport) if err != nil { return nil, err diff --git a/rpc/packages.go b/rpc/packages.go index ac3127356a5fda220a248c047a4cb910976d17d9..ef31ff1e1100cc18378b4445a0b7a7ad0ef6680e 100644 --- a/rpc/packages.go +++ b/rpc/packages.go @@ -109,8 +109,8 @@ func (self *EthereumApi) NewFilterString(args string, reply *interface{}) error } func (self *EthereumApi) FilterChanged(id int, reply *interface{}) error { - self.logMut.RLock() - defer self.logMut.RUnlock() + self.logMut.Lock() + defer self.logMut.Unlock() *reply = toLogs(self.logs[id]) @@ -309,8 +309,8 @@ func (p *EthereumApi) NewWhisperFilter(args *xeth.Options, reply *interface{}) e } func (self *EthereumApi) MessagesChanged(id int, reply *interface{}) error { - self.messagesMut.RLock() - defer self.messagesMut.RUnlock() + self.messagesMut.Lock() + defer self.messagesMut.Unlock() *reply = self.messages[id]