Commit 842dff87 authored by Hugo's avatar Hugo Committed by vipwzw

fix gosec problem in oracle module

parent 6e50f002
...@@ -52,28 +52,72 @@ func OraclePublishEventRawTxCmd() *cobra.Command { ...@@ -52,28 +52,72 @@ func OraclePublishEventRawTxCmd() *cobra.Command {
func addPublishEventFlags(cmd *cobra.Command) { func addPublishEventFlags(cmd *cobra.Command) {
cmd.Flags().StringP("type", "t", "", "event type, such as \"football\"") cmd.Flags().StringP("type", "t", "", "event type, such as \"football\"")
cmd.MarkFlagRequired("type") err := cmd.MarkFlagRequired("type")
if err != nil {
fmt.Printf("MarkFlagRequired type Error: %v", err)
return
}
cmd.Flags().StringP("subtype", "s", "", "event subtype, such as \"Premier League\"") cmd.Flags().StringP("subtype", "s", "", "event subtype, such as \"Premier League\"")
cmd.MarkFlagRequired("subtype") err = cmd.MarkFlagRequired("subtype")
if err != nil {
fmt.Printf("MarkFlagRequired subtype Error: %v", err)
return
}
cmd.Flags().StringP("time", "m", "", "time that event result may be shown, such as \"2019-01-21 15:30:00\"") cmd.Flags().StringP("time", "m", "", "time that event result may be shown, such as \"2019-01-21 15:30:00\"")
cmd.MarkFlagRequired("time") err = cmd.MarkFlagRequired("time")
if err != nil {
fmt.Printf("MarkFlagRequired time Error: %v", err)
return
}
cmd.Flags().StringP("content", "c", "", "event content, such as '{\"team1\":\"ChelSea\", \"team2\":\"Manchester\",\"resultType\":\"score\"}'") cmd.Flags().StringP("content", "c", "", "event content, such as '{\"team1\":\"ChelSea\", \"team2\":\"Manchester\",\"resultType\":\"score\"}'")
cmd.MarkFlagRequired("content") err = cmd.MarkFlagRequired("content")
if err != nil {
fmt.Printf("MarkFlagRequired content Error: %v", err)
return
}
cmd.Flags().StringP("introduction", "i", "", "event introduction, such as \"guess the sore result of football game between ChelSea and Manchester in 2019-01-21 14:00:00\"") cmd.Flags().StringP("introduction", "i", "", "event introduction, such as \"guess the sore result of football game between ChelSea and Manchester in 2019-01-21 14:00:00\"")
cmd.MarkFlagRequired("introduction") err = cmd.MarkFlagRequired("introduction")
if err != nil {
fmt.Printf("MarkFlagRequired introduction Error: %v", err)
return
}
} }
func publishEvent(cmd *cobra.Command, args []string) { func publishEvent(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
ty, _ := cmd.Flags().GetString("type") if err != nil {
subType, _ := cmd.Flags().GetString("subtype") fmt.Printf("publishEvent get rpc addr Error: %v", err)
introduction, _ := cmd.Flags().GetString("introduction") return
timeString, _ := cmd.Flags().GetString("time") }
content, _ := cmd.Flags().GetString("content") ty, err := cmd.Flags().GetString("type")
if err != nil {
fmt.Printf("publishEvent get type Error: %v", err)
return
}
subType, err := cmd.Flags().GetString("subtype")
if err != nil {
fmt.Printf("publishEvent get subtype Error: %v", err)
return
}
introduction, err := cmd.Flags().GetString("introduction")
if err != nil {
fmt.Printf("publishEvent get introduction Error: %v", err)
return
}
timeString, err := cmd.Flags().GetString("time")
if err != nil {
fmt.Printf("publishEvent get time Error: %v", err)
return
}
content, err := cmd.Flags().GetString("content")
if err != nil {
fmt.Printf("publishEvent get content Error: %v", err)
return
}
layout := "2006-01-02 15:04:05" layout := "2006-01-02 15:04:05"
t, err := time.Parse(layout, timeString) t, err := time.Parse(layout, timeString)
...@@ -105,12 +149,24 @@ func OracleAbortEventRawTxCmd() *cobra.Command { ...@@ -105,12 +149,24 @@ func OracleAbortEventRawTxCmd() *cobra.Command {
func addAbortPublishEventFlags(cmd *cobra.Command) { func addAbortPublishEventFlags(cmd *cobra.Command) {
cmd.Flags().StringP("eventID", "e", "", "eventID") cmd.Flags().StringP("eventID", "e", "", "eventID")
cmd.MarkFlagRequired("eventID") err := cmd.MarkFlagRequired("eventID")
if err != nil {
fmt.Printf("MarkFlagRequired eventID Error: %v", err)
return
}
} }
func abortPublishEvent(cmd *cobra.Command, args []string) { func abortPublishEvent(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
eventID, _ := cmd.Flags().GetString("eventID") if err != nil {
fmt.Printf("abortPublishEvent rpc_addr Error: %v", err)
return
}
eventID, err := cmd.Flags().GetString("eventID")
if err != nil {
fmt.Printf("abortPublishEvent eventID Error: %v", err)
return
}
params := &rpctypes.CreateTxIn{ params := &rpctypes.CreateTxIn{
Execer: types.ExecName(oraclety.OracleX), Execer: types.ExecName(oraclety.OracleX),
...@@ -135,20 +191,48 @@ func OraclePrePublishResultRawTxCmd() *cobra.Command { ...@@ -135,20 +191,48 @@ func OraclePrePublishResultRawTxCmd() *cobra.Command {
func addPrePublishResultFlags(cmd *cobra.Command) { func addPrePublishResultFlags(cmd *cobra.Command) {
cmd.Flags().StringP("eventID", "e", "", "eventID") cmd.Flags().StringP("eventID", "e", "", "eventID")
cmd.MarkFlagRequired("eventID") err := cmd.MarkFlagRequired("eventID")
if err != nil {
fmt.Printf("addPrePublishResultFlags eventID Error: %v", err)
return
}
cmd.Flags().StringP("source", "s", "", "source where result from") cmd.Flags().StringP("source", "s", "", "source where result from")
cmd.MarkFlagRequired("source") err = cmd.MarkFlagRequired("source")
if err != nil {
fmt.Printf("addPrePublishResultFlags source Error: %v", err)
return
}
cmd.Flags().StringP("result", "r", "", "result string") cmd.Flags().StringP("result", "r", "", "result string")
cmd.MarkFlagRequired("result") err = cmd.MarkFlagRequired("result")
if err != nil {
fmt.Printf("addPrePublishResultFlags result Error: %v", err)
return
}
} }
func prePublishResult(cmd *cobra.Command, args []string) { func prePublishResult(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
eventID, _ := cmd.Flags().GetString("eventID") if err != nil {
source, _ := cmd.Flags().GetString("source") fmt.Printf("prePublishResult rpc_laddr Error: %v", err)
result, _ := cmd.Flags().GetString("result") return
}
eventID, err := cmd.Flags().GetString("eventID")
if err != nil {
fmt.Printf("prePublishResult eventID Error: %v", err)
return
}
source, err := cmd.Flags().GetString("source")
if err != nil {
fmt.Printf("prePublishResult source Error: %v", err)
return
}
result, err := cmd.Flags().GetString("result")
if err != nil {
fmt.Printf("prePublishResult result Error: %v", err)
return
}
params := &rpctypes.CreateTxIn{ params := &rpctypes.CreateTxIn{
Execer: types.ExecName(oraclety.OracleX), Execer: types.ExecName(oraclety.OracleX),
...@@ -173,12 +257,24 @@ func OracleAbortPrePubResultRawTxCmd() *cobra.Command { ...@@ -173,12 +257,24 @@ func OracleAbortPrePubResultRawTxCmd() *cobra.Command {
func addAbortPrePubResultFlags(cmd *cobra.Command) { func addAbortPrePubResultFlags(cmd *cobra.Command) {
cmd.Flags().StringP("eventID", "e", "", "eventID") cmd.Flags().StringP("eventID", "e", "", "eventID")
cmd.MarkFlagRequired("eventID") err := cmd.MarkFlagRequired("eventID")
if err != nil {
fmt.Printf("MarkFlagRequired eventID Error: %v", err)
return
}
} }
func abortPrePubResult(cmd *cobra.Command, args []string) { func abortPrePubResult(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
eventID, _ := cmd.Flags().GetString("eventID") if err != nil {
fmt.Printf("abortPrePubResult rpc_laddr Error: %v", err)
return
}
eventID, err := cmd.Flags().GetString("eventID")
if err != nil {
fmt.Printf("abortPrePubResult eventID Error: %v", err)
return
}
params := &rpctypes.CreateTxIn{ params := &rpctypes.CreateTxIn{
Execer: types.ExecName(oraclety.OracleX), Execer: types.ExecName(oraclety.OracleX),
...@@ -203,20 +299,48 @@ func OraclePublishResultRawTxCmd() *cobra.Command { ...@@ -203,20 +299,48 @@ func OraclePublishResultRawTxCmd() *cobra.Command {
func addPublishResultFlags(cmd *cobra.Command) { func addPublishResultFlags(cmd *cobra.Command) {
cmd.Flags().StringP("eventID", "e", "", "eventID") cmd.Flags().StringP("eventID", "e", "", "eventID")
cmd.MarkFlagRequired("eventID") err := cmd.MarkFlagRequired("eventID")
if err != nil {
fmt.Printf("addPublishResultFlags rpc_laddr Error: %v", err)
return
}
cmd.Flags().StringP("source", "s", "", "source where result from") cmd.Flags().StringP("source", "s", "", "source where result from")
cmd.MarkFlagRequired("source") err = cmd.MarkFlagRequired("source")
if err != nil {
fmt.Printf("addPublishResultFlags source Error: %v", err)
return
}
cmd.Flags().StringP("result", "r", "", "result string, such as \"{\"team1\":3, \"team2\":2}\"") cmd.Flags().StringP("result", "r", "", "result string, such as \"{\"team1\":3, \"team2\":2}\"")
cmd.MarkFlagRequired("result") err = cmd.MarkFlagRequired("result")
if err != nil {
fmt.Printf("addPublishResultFlags result Error: %v", err)
return
}
} }
func publishResult(cmd *cobra.Command, args []string) { func publishResult(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
eventID, _ := cmd.Flags().GetString("eventID") if err != nil {
source, _ := cmd.Flags().GetString("source") fmt.Printf("publishResult rpc_laddr Error: %v", err)
result, _ := cmd.Flags().GetString("result") return
}
eventID, err := cmd.Flags().GetString("eventID")
if err != nil {
fmt.Printf("publishResult eventID Error: %v", err)
return
}
source, err := cmd.Flags().GetString("source")
if err != nil {
fmt.Printf("publishResult source Error: %v", err)
return
}
result, err := cmd.Flags().GetString("result")
if err != nil {
fmt.Printf("publishResult result Error: %v", err)
return
}
params := &rpctypes.CreateTxIn{ params := &rpctypes.CreateTxIn{
Execer: types.ExecName(oraclety.OracleX), Execer: types.ExecName(oraclety.OracleX),
...@@ -241,29 +365,77 @@ func OracleQueryRawTxCmd() *cobra.Command { ...@@ -241,29 +365,77 @@ func OracleQueryRawTxCmd() *cobra.Command {
func addOracleQueryFlags(cmd *cobra.Command) { func addOracleQueryFlags(cmd *cobra.Command) {
cmd.Flags().StringP("last_eventID", "l", "", "last eventID, to get next page data") cmd.Flags().StringP("last_eventID", "l", "", "last eventID, to get next page data")
cmd.MarkFlagRequired("last_eventID") err := cmd.MarkFlagRequired("last_eventID")
if err != nil {
fmt.Printf("MarkFlagRequired last_eventID Error: %v", err)
return
}
cmd.Flags().StringP("type", "t", "", "event type, such as \"football\"") cmd.Flags().StringP("type", "t", "", "event type, such as \"football\"")
cmd.MarkFlagRequired("type") err = cmd.MarkFlagRequired("type")
if err != nil {
fmt.Printf("MarkFlagRequired type Error: %v", err)
return
}
cmd.Flags().StringP("status", "s", "", "status, number 1-5") cmd.Flags().StringP("status", "s", "", "status, number 1-5")
cmd.MarkFlagRequired("status") err = cmd.MarkFlagRequired("status")
if err != nil {
fmt.Printf("MarkFlagRequired status Error: %v", err)
return
}
cmd.Flags().StringP("addr", "a", "", "address of event creator") cmd.Flags().StringP("addr", "a", "", "address of event creator")
cmd.MarkFlagRequired("addr") err = cmd.MarkFlagRequired("addr")
if err != nil {
fmt.Printf("MarkFlagRequired addr Error: %v", err)
return
}
cmd.Flags().StringP("eventIDs", "d", "", "eventIDs, used for query eventInfo, use comma between many ids") cmd.Flags().StringP("eventIDs", "d", "", "eventIDs, used for query eventInfo, use comma between many ids")
cmd.MarkFlagRequired("eventIDs") err = cmd.MarkFlagRequired("eventIDs")
if err != nil {
fmt.Printf("MarkFlagRequired eventIDs Error: %v", err)
return
}
} }
func oracleQuery(cmd *cobra.Command, args []string) { func oracleQuery(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, err := cmd.Flags().GetString("rpc_laddr")
lastEventID, _ := cmd.Flags().GetString("last_eventID") if err != nil {
eventIDs, _ := cmd.Flags().GetString("eventIDs") fmt.Printf("oracleQuery rpc_laddr Error: %v", err)
ty, _ := cmd.Flags().GetString("type") return
statusStr, _ := cmd.Flags().GetString("status") }
status, _ := strconv.ParseInt(statusStr, 10, 32) lastEventID, err := cmd.Flags().GetString("last_eventID")
addr, _ := cmd.Flags().GetString("addr") if err != nil {
fmt.Printf("oracleQuery last_eventID Error: %v", err)
return
}
eventIDs, err := cmd.Flags().GetString("eventIDs")
if err != nil {
fmt.Printf("oracleQuery eventIDs Error: %v", err)
return
}
ty, err := cmd.Flags().GetString("type")
if err != nil {
fmt.Printf("oracleQuery type Error: %v", err)
return
}
statusStr, err := cmd.Flags().GetString("status")
if err != nil {
fmt.Printf("oracleQuery status Error: %v", err)
return
}
status, err := strconv.ParseInt(statusStr, 10, 32)
if err != nil {
fmt.Printf("oracleQuery status Error: %v", err)
return
}
addr, err := cmd.Flags().GetString("addr")
if err != nil {
fmt.Printf("oracleQuery addr Error: %v", err)
return
}
var params rpctypes.Query4Jrpc var params rpctypes.Query4Jrpc
params.Execer = oraclety.OracleX params.Execer = oraclety.OracleX
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
package executor package executor
import ( import (
"fmt"
"github.com/33cn/chain33/common/db/table" "github.com/33cn/chain33/common/db/table"
"github.com/33cn/chain33/common" "github.com/33cn/chain33/common"
...@@ -50,11 +51,16 @@ func (o *OracleDB) GetKVSet() (kvset []*types.KeyValue) { ...@@ -50,11 +51,16 @@ func (o *OracleDB) GetKVSet() (kvset []*types.KeyValue) {
} }
// Save for OracleDB // Save for OracleDB
func (o *OracleDB) save(db dbm.KV) { func (o *OracleDB) save(db dbm.KV) error{
set := o.GetKVSet() set := o.GetKVSet()
for i := 0; i < len(set); i++ { for i := 0; i < len(set); i++ {
db.Set(set[i].GetKey(), set[i].Value) err := db.Set(set[i].GetKey(), set[i].Value)
if err != nil {
fmt.Printf("oracledb save failed:[%v]-%v", i, err)
return err
}
} }
return nil
} }
// Key for oracle // Key for oracle
...@@ -105,7 +111,9 @@ func (action *oracleAction) eventPublish(event *oty.EventPublish) (*types.Receip ...@@ -105,7 +111,9 @@ func (action *oracleAction) eventPublish(event *oty.EventPublish) (*types.Receip
eventStatus := NewOracleDB(eventID, action.fromaddr, event.Type, event.SubType, event.Content, event.Introduction, event.Time, action.GetIndex()) eventStatus := NewOracleDB(eventID, action.fromaddr, event.Type, event.SubType, event.Content, event.Introduction, event.Time, action.GetIndex())
olog.Debug("eventPublish", "PublisherAddr", eventStatus.Addr, "EventID", eventStatus.EventID, "Event", eventStatus.Content) olog.Debug("eventPublish", "PublisherAddr", eventStatus.Addr, "EventID", eventStatus.EventID, "Event", eventStatus.Content)
eventStatus.save(action.db) if err := eventStatus.save(action.db); err != nil {
return nil, err
}
kv = append(kv, eventStatus.GetKVSet()...) kv = append(kv, eventStatus.GetKVSet()...)
receiptLog := action.getOracleCommonRecipt(&eventStatus.OracleStatus, oty.TyLogEventPublish) receiptLog := action.getOracleCommonRecipt(&eventStatus.OracleStatus, oty.TyLogEventPublish)
...@@ -140,7 +148,9 @@ func (action *oracleAction) eventAbort(event *oty.EventAbort) (*types.Receipt, e ...@@ -140,7 +148,9 @@ func (action *oracleAction) eventAbort(event *oty.EventAbort) (*types.Receipt, e
updateStatus(ora, action.GetIndex(), action.fromaddr, oty.EventAborted) updateStatus(ora, action.GetIndex(), action.fromaddr, oty.EventAborted)
ora.save(action.db) if err := ora.save(action.db); err != nil {
return nil, err
}
kv = append(kv, ora.GetKVSet()...) kv = append(kv, ora.GetKVSet()...)
receiptLog := action.getOracleCommonRecipt(&ora.OracleStatus, oty.TyLogEventAbort) receiptLog := action.getOracleCommonRecipt(&ora.OracleStatus, oty.TyLogEventAbort)
...@@ -177,7 +187,9 @@ func (action *oracleAction) resultPrePublish(event *oty.ResultPrePublish) (*type ...@@ -177,7 +187,9 @@ func (action *oracleAction) resultPrePublish(event *oty.ResultPrePublish) (*type
ora.Result = event.Result ora.Result = event.Result
ora.Source = event.Source ora.Source = event.Source
ora.save(action.db) if err := ora.save(action.db); err != nil {
return nil, err
}
kv = append(kv, ora.GetKVSet()...) kv = append(kv, ora.GetKVSet()...)
receiptLog := action.getOracleCommonRecipt(&ora.OracleStatus, oty.TyLogResultPrePublish) receiptLog := action.getOracleCommonRecipt(&ora.OracleStatus, oty.TyLogResultPrePublish)
...@@ -214,7 +226,9 @@ func (action *oracleAction) resultAbort(event *oty.ResultAbort) (*types.Receipt, ...@@ -214,7 +226,9 @@ func (action *oracleAction) resultAbort(event *oty.ResultAbort) (*types.Receipt,
ora.Result = "" ora.Result = ""
ora.Source = "" ora.Source = ""
ora.save(action.db) if err := ora.save(action.db); err != nil {
return nil, err
}
kv = append(kv, ora.GetKVSet()...) kv = append(kv, ora.GetKVSet()...)
receiptLog := action.getOracleCommonRecipt(&ora.OracleStatus, oty.TyLogResultAbort) receiptLog := action.getOracleCommonRecipt(&ora.OracleStatus, oty.TyLogResultAbort)
...@@ -251,7 +265,9 @@ func (action *oracleAction) resultPublish(event *oty.ResultPublish) (*types.Rece ...@@ -251,7 +265,9 @@ func (action *oracleAction) resultPublish(event *oty.ResultPublish) (*types.Rece
ora.Result = event.Result ora.Result = event.Result
ora.Source = event.Source ora.Source = event.Source
ora.save(action.db) if err := ora.save(action.db); err != nil {
return nil, err
}
kv = append(kv, ora.GetKVSet()...) kv = append(kv, ora.GetKVSet()...)
receiptLog := action.getOracleCommonRecipt(&ora.OracleStatus, oty.TyLogResultPublish) receiptLog := action.getOracleCommonRecipt(&ora.OracleStatus, oty.TyLogResultPublish)
......
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