Commit 854ce979 authored by heyubin's avatar heyubin Committed by vipwzw

add by hyb for issues334 gosec

parent 10cf1647
...@@ -66,8 +66,11 @@ func (pack *transferInPack) checkBalance(txInfo types.CheckHandlerParamType) boo ...@@ -66,8 +66,11 @@ func (pack *transferInPack) checkBalance(txInfo types.CheckHandlerParamType) boo
} }
interCase := pack.TCase.(*transferInCase) interCase := pack.TCase.(*transferInCase)
amount, _ := strconv.ParseFloat(interCase.Amount, 64) amount, err := strconv.ParseFloat(interCase.Amount, 64)
if err != nil {
pack.FLog.Error("checkMultiSignTransferIn", "id", pack.PackID, "ParseFloat", err)
return false
}
return types.CheckBalanceDeltaWithAddr(fromLog, interCase.From, -amount) && return types.CheckBalanceDeltaWithAddr(fromLog, interCase.From, -amount) &&
types.CheckBalanceDeltaWithAddr(toLog, interCase.info.account, amount) && types.CheckBalanceDeltaWithAddr(toLog, interCase.info.account, amount) &&
types.CheckFrozenDeltaWithAddr(frozenLog, interCase.info.account, amount) && types.CheckFrozenDeltaWithAddr(frozenLog, interCase.info.account, amount) &&
......
...@@ -61,7 +61,11 @@ func (pack *transferOutPack) checkBalance(txInfo types.CheckHandlerParamType) bo ...@@ -61,7 +61,11 @@ func (pack *transferOutPack) checkBalance(txInfo types.CheckHandlerParamType) bo
logLen := len(txInfo.Receipt.Logs) logLen := len(txInfo.Receipt.Logs)
var txLog map[string]interface{} var txLog map[string]interface{}
_ = json.Unmarshal(txInfo.Receipt.Logs[logLen-1].Log, &txLog) err := json.Unmarshal(txInfo.Receipt.Logs[logLen-1].Log, &txLog)
if err != nil {
pack.FLog.Error("checkMultiSignTransferOut", "id", pack.PackID, "Unmarshal", err)
return false
}
pack.txID = txLog["multiSigTxOwner"].(map[string]interface{})["txid"].(string) pack.txID = txLog["multiSigTxOwner"].(map[string]interface{})["txid"].(string)
if logLen < 6 { if logLen < 6 {
//need confirm //need confirm
...@@ -75,13 +79,16 @@ func (pack *transferOutPack) checkBalance(txInfo types.CheckHandlerParamType) bo ...@@ -75,13 +79,16 @@ func (pack *transferOutPack) checkBalance(txInfo types.CheckHandlerParamType) bo
err2 := json.Unmarshal(txInfo.Receipt.Logs[2].Log, &toLog) err2 := json.Unmarshal(txInfo.Receipt.Logs[2].Log, &toLog)
if err1 != nil || err2 != nil { if err1 != nil || err2 != nil {
pack.FLog.Error("checkMultiSignTransferOut", "id", pack.PackID, "unmarshalErr1", err1, "unmarshalErr2") pack.FLog.Error("checkMultiSignTransferOut", "id", pack.PackID, "unmarshalErr1", err1, "unmarshalErr2", err2)
return false return false
} }
interCase := pack.TCase.(*transferOutCase) interCase := pack.TCase.(*transferOutCase)
amount, _ := strconv.ParseFloat(interCase.Amount, 64) amount, err3 := strconv.ParseFloat(interCase.Amount, 64)
if err3 != nil {
pack.FLog.Error("checkMultiSignTransferOut", "id", pack.PackID, "ParseFloat", err3)
return false
}
return types.CheckFrozenDeltaWithAddr(fromLog, interCase.info.account, -amount) && return types.CheckFrozenDeltaWithAddr(fromLog, interCase.info.account, -amount) &&
types.CheckBalanceDeltaWithAddr(toLog, interCase.To, amount) types.CheckBalanceDeltaWithAddr(toLog, interCase.To, amount)
} }
This diff is collapsed.
...@@ -212,8 +212,8 @@ func (a *action) MultiSigExecTransferFrom(multiSigAccTransfer *mty.MultiSigExecT ...@@ -212,8 +212,8 @@ func (a *action) MultiSigExecTransferFrom(multiSigAccTransfer *mty.MultiSigExecT
} }
// to 地址必须不是多重签名账户地址 // to 地址必须不是多重签名账户地址
multiSigAccTo, _ := getMultiSigAccFromDb(a.db, multiSigAccTransfer.To) multiSigAccTo, err := getMultiSigAccFromDb(a.db, multiSigAccTransfer.To)
if multiSigAccTo != nil { if multiSigAccTo != nil && err == nil {
multisiglog.Error("MultiSigExecTransferFrom", "multiSigAccTo", multiSigAccTo, "ToAddr", multiSigAccTransfer.To) multisiglog.Error("MultiSigExecTransferFrom", "multiSigAccTo", multiSigAccTo, "ToAddr", multiSigAccTransfer.To)
return nil, mty.ErrAddrNotSupport return nil, mty.ErrAddrNotSupport
} }
...@@ -250,19 +250,19 @@ func (a *action) MultiSigExecTransferFrom(multiSigAccTransfer *mty.MultiSigExecT ...@@ -250,19 +250,19 @@ func (a *action) MultiSigExecTransferFrom(multiSigAccTransfer *mty.MultiSigExecT
func (a *action) MultiSigExecTransferTo(execTransfer *mty.MultiSigExecTransferTo) (*types.Receipt, error) { func (a *action) MultiSigExecTransferTo(execTransfer *mty.MultiSigExecTransferTo) (*types.Receipt, error) {
//from地址校验必须不是多重签名账户地址 //from地址校验必须不是多重签名账户地址
multiSigAccFrom, _ := getMultiSigAccFromDb(a.db, a.fromaddr) multiSigAccFrom, err := getMultiSigAccFromDb(a.db, a.fromaddr)
if multiSigAccFrom != nil { if multiSigAccFrom != nil && err == nil {
multisiglog.Error("MultiSigExecTransferTo", "multiSigAccFrom", multiSigAccFrom, "From", a.fromaddr) multisiglog.Error("MultiSigExecTransferTo", "multiSigAccFrom", multiSigAccFrom, "From", a.fromaddr)
return nil, mty.ErrAddrNotSupport return nil, mty.ErrAddrNotSupport
} }
// to 地址必须是多重签名账户地址 // to 地址必须是多重签名账户地址
multiSigAccTo, _ := getMultiSigAccFromDb(a.db, execTransfer.To) multiSigAccTo, err := getMultiSigAccFromDb(a.db, execTransfer.To)
if multiSigAccTo == nil { if multiSigAccTo == nil || err != nil {
multisiglog.Error("MultiSigExecTransferTo", "ToAddr", execTransfer.To) multisiglog.Error("MultiSigExecTransferTo", "ToAddr", execTransfer.To)
return nil, mty.ErrAddrNotSupport return nil, mty.ErrAddrNotSupport
} }
//assete资产合法性校验 //assete资产合法性校验
err := mty.IsAssetsInvalid(execTransfer.Execname, execTransfer.Symbol) err = mty.IsAssetsInvalid(execTransfer.Execname, execTransfer.Symbol)
if err != nil { if err != nil {
return nil, err return nil, err
} }
......
...@@ -39,10 +39,10 @@ func setMultiSigAccToDb(db dbm.KV, multiSigAcc *mty.MultiSig) ([]byte, []byte) { ...@@ -39,10 +39,10 @@ func setMultiSigAccToDb(db dbm.KV, multiSigAcc *mty.MultiSig) ([]byte, []byte) {
value := types.Encode(multiSigAcc) value := types.Encode(multiSigAcc)
//即时保存到db中,方便同一个区块的下一个交易使用 //即时保存到db中,方便同一个区块的下一个交易使用
db.Set(key, value) err := db.Set(key, value)
//test if err != nil {
multisiglog.Info("setMultiSigAccToDb", "multiSigAcc", multiSigAcc) multisiglog.Error("setMultiSigAccToDb", "multiSigAcc", multiSigAcc, "err", err)
}
return key, value return key, value
} }
...@@ -71,10 +71,10 @@ func getMultiSigAccTxFromDb(db dbm.KV, multiSigAddr string, txid uint64) (*mty.M ...@@ -71,10 +71,10 @@ func getMultiSigAccTxFromDb(db dbm.KV, multiSigAddr string, txid uint64) (*mty.M
func setMultiSigAccTxToDb(db dbm.KV, multiSigTx *mty.MultiSigTx) ([]byte, []byte) { func setMultiSigAccTxToDb(db dbm.KV, multiSigTx *mty.MultiSigTx) ([]byte, []byte) {
key := calcMultiSigAccTxKey(multiSigTx.MultiSigAddr, multiSigTx.Txid) key := calcMultiSigAccTxKey(multiSigTx.MultiSigAddr, multiSigTx.Txid)
value := types.Encode(multiSigTx) value := types.Encode(multiSigTx)
db.Set(key, value) err := db.Set(key, value)
if err != nil {
//test multisiglog.Error("setMultiSigAccTxToDb", "multiSigTx", multiSigTx, "err", err)
multisiglog.Info("setMultiSigAccTxToDb", "multiSigTx", multiSigTx) }
return key, value return key, value
} }
...@@ -127,7 +127,10 @@ func updateMultiSigAccCount(cachedb dbm.KVDB, isadd bool) (*types.KeyValue, erro ...@@ -127,7 +127,10 @@ func updateMultiSigAccCount(cachedb dbm.KVDB, isadd bool) (*types.KeyValue, erro
} }
count-- count--
} }
setMultiSigAccCount(cachedb, count) err = setMultiSigAccCount(cachedb, count)
if err != nil {
multisiglog.Error("updateMultiSigAccCount:setMultiSigAccCount ", "count", count, "err", err)
}
//keyvalue //keyvalue
return getMultiSigAccCountKV(count), nil return getMultiSigAccCountKV(count), nil
} }
...@@ -188,12 +191,18 @@ func updateMultiSigAccList(db dbm.KVDB, addr string, index int64, isadd bool) (* ...@@ -188,12 +191,18 @@ func updateMultiSigAccList(db dbm.KVDB, addr string, index int64, isadd bool) (*
} }
if isadd { //新增 if isadd { //新增
db.Set(calcMultiSigAllAcc(index), []byte(addr)) err = db.Set(calcMultiSigAllAcc(index), []byte(addr))
if err != nil {
multisiglog.Error("UpdateMultiSigAccList add", "addr", addr, "index", index, "err", err)
}
kv := &types.KeyValue{Key: calcMultiSigAllAcc(index), Value: []byte(addr)} kv := &types.KeyValue{Key: calcMultiSigAllAcc(index), Value: []byte(addr)}
return kv, nil return kv, nil
} }
// 删除 // 删除
db.Set(calcMultiSigAllAcc(index), nil) err = db.Set(calcMultiSigAllAcc(index), nil)
if err != nil {
multisiglog.Error("UpdateMultiSigAccList del", "addr", addr, "index", index, "err", err)
}
kv := &types.KeyValue{Key: calcMultiSigAllAcc(index), Value: nil} kv := &types.KeyValue{Key: calcMultiSigAllAcc(index), Value: nil}
return kv, nil return kv, nil
} }
...@@ -263,7 +272,10 @@ func updateAddrReciver(cachedb dbm.KVDB, addr, execname, symbol string, amount i ...@@ -263,7 +272,10 @@ func updateAddrReciver(cachedb dbm.KVDB, addr, execname, symbol string, amount i
} else { } else {
recv -= amount recv -= amount
} }
setAddrReciver(cachedb, addr, execname, symbol, recv) err = setAddrReciver(cachedb, addr, execname, symbol, recv)
if err != nil {
multisiglog.Error("updateAddrReciver setAddrReciver", "addr", addr, "execname", execname, "symbol", symbol, "err", err)
}
//keyvalue //keyvalue
return getAddrReciverKV(addr, execname, symbol, recv), nil return getAddrReciverKV(addr, execname, symbol, recv), nil
} }
...@@ -350,7 +362,10 @@ func setMultiSigAddress(db dbm.KVDB, createAddr, multiSigAddr string, isadd bool ...@@ -350,7 +362,10 @@ func setMultiSigAddress(db dbm.KVDB, createAddr, multiSigAddr string, isadd bool
key := calcMultiSigAccCreateAddr(createAddr) key := calcMultiSigAccCreateAddr(createAddr)
value := types.Encode(accAddress) value := types.Encode(accAddress)
db.Set(key, value) err = db.Set(key, value)
if err != nil {
multisiglog.Error("setMultiSigAddress", "key", string(key), "err", err)
}
return &types.KeyValue{Key: key, Value: value} return &types.KeyValue{Key: key, Value: value}
} }
......
...@@ -340,7 +340,10 @@ func (m *MultiSig) Query_MultiSigAccAssets(in *mty.ReqAccAssets) (types.Message, ...@@ -340,7 +340,10 @@ func (m *MultiSig) Query_MultiSigAccAssets(in *mty.ReqAccAssets) (types.Message,
continue continue
} }
accAssets := &mty.AccAssets{} accAssets := &mty.AccAssets{}
account, _ := m.getMultiSigAccAssets(reciver.MultiSigAddr, reciver.Assets) account, err := m.getMultiSigAccAssets(reciver.MultiSigAddr, reciver.Assets)
if err != nil {
multisiglog.Error("Query_MultiSigAccAssets:getMultiSigAccAssets", "MultiSigAddr", reciver.MultiSigAddr, "err", err)
}
accAssets.Account = account accAssets.Account = account
accAssets.Assets = reciver.Assets accAssets.Assets = reciver.Assets
accAssets.RecvAmount = reciver.Amount accAssets.RecvAmount = reciver.Amount
...@@ -355,11 +358,17 @@ func (m *MultiSig) Query_MultiSigAccAssets(in *mty.ReqAccAssets) (types.Message, ...@@ -355,11 +358,17 @@ func (m *MultiSig) Query_MultiSigAccAssets(in *mty.ReqAccAssets) (types.Message,
if err != nil { if err != nil {
return nil, err return nil, err
} }
account, _ := m.getMultiSigAccAssets(in.MultiSigAddr, in.Assets) account, err := m.getMultiSigAccAssets(in.MultiSigAddr, in.Assets)
if err != nil {
multisiglog.Error("Query_MultiSigAccAssets:getMultiSigAccAssets", "MultiSigAddr", in.MultiSigAddr, "err", err)
}
accAssets.Account = account accAssets.Account = account
accAssets.Assets = in.Assets accAssets.Assets = in.Assets
amount, _ := getAddrReciver(m.GetLocalDB(), in.MultiSigAddr, in.Assets.Execer, in.Assets.Symbol) amount, err := getAddrReciver(m.GetLocalDB(), in.MultiSigAddr, in.Assets.Execer, in.Assets.Symbol)
if err != nil {
multisiglog.Error("Query_MultiSigAccAssets:getAddrReciver", "MultiSigAddr", in.MultiSigAddr, "err", err)
}
accAssets.RecvAmount = amount accAssets.RecvAmount = amount
replyAccAssets.AccAssets = append(replyAccAssets.AccAssets, accAssets) replyAccAssets.AccAssets = append(replyAccAssets.AccAssets, accAssets)
......
...@@ -492,7 +492,10 @@ func (policy *multisigPolicy) proceMultiSigAcc(multiSigAccs *mtypes.ReplyMultiSi ...@@ -492,7 +492,10 @@ func (policy *multisigPolicy) proceMultiSigAcc(multiSigAccs *mtypes.ReplyMultiSi
} else if ownerAttrs != nil { } else if ownerAttrs != nil {
AddOwnerAttr(false, ownerAttrs, ownerAttr, newbatch) AddOwnerAttr(false, ownerAttrs, ownerAttr, newbatch)
} }
newbatch.Write() err = newbatch.Write()
if err != nil {
bizlog.Error("ProceMultiSigAcc Write", "owneraddr", owneraddr, "err", err)
}
break break
} }
} }
...@@ -501,7 +504,10 @@ func (policy *multisigPolicy) proceMultiSigAcc(multiSigAccs *mtypes.ReplyMultiSi ...@@ -501,7 +504,10 @@ func (policy *multisigPolicy) proceMultiSigAcc(multiSigAccs *mtypes.ReplyMultiSi
func (policy *multisigPolicy) proceWalletTxDetail(block *types.BlockDetail, tx *types.Transaction, index int32) *types.WalletTxDetail { func (policy *multisigPolicy) proceWalletTxDetail(block *types.BlockDetail, tx *types.Transaction, index int32) *types.WalletTxDetail {
receipt := block.Receipts[index] receipt := block.Receipts[index]
amount, _ := tx.Amount() amount, err := tx.Amount()
if err != nil {
bizlog.Error("proceWalletTxDetail:tx.Amount()", "err", err)
}
wtxdetail := &types.WalletTxDetail{ wtxdetail := &types.WalletTxDetail{
Tx: tx, Tx: tx,
Height: block.Block.Height, Height: block.Block.Height,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment