mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-05 08:10:50 +00:00
protect invalid guid in etcd
This commit is contained in:
parent
b3b8c3bc4f
commit
0c2a24d8d8
1 changed files with 24 additions and 1 deletions
25
core/etcd.go
25
core/etcd.go
|
|
@ -38,6 +38,11 @@ func (self *TopologyMapper) Setup() {
|
|||
}
|
||||
//need to lock the world
|
||||
for _, node := range flatten(resp.Node) {
|
||||
if len(node.Value) < 5 {
|
||||
log.Println("No GUID skipping")
|
||||
log.Println(spew.Sdump(node))
|
||||
continue
|
||||
}
|
||||
err := self.handlenode(node)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
|
|
@ -63,6 +68,11 @@ func (self *TopologyMapper) Run() {
|
|||
for resp := range receiver {
|
||||
switch resp.Action {
|
||||
case "set":
|
||||
if len(resp.Node.Value) < 5 {
|
||||
log.Println("No GUID skipping set")
|
||||
log.Println(spew.Sdump(resp))
|
||||
continue
|
||||
}
|
||||
self.handlenode(resp.Node)
|
||||
case "delete":
|
||||
self.remove_fragment(resp.Node)
|
||||
|
|
@ -216,7 +226,9 @@ func (self *TopologyMapper) handlenode(node *etcd.Node) error {
|
|||
if bits[8] != "process" {
|
||||
return errors.New("no process")
|
||||
}
|
||||
|
||||
process_uuid, err = util.ParseGUID(node.Value)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -425,6 +437,12 @@ func (self *ProcessMapper) Run() {
|
|||
|
||||
response, err := self.service.Etcd.Get(path, false, true)
|
||||
for _, node := range flatten(response.Node) {
|
||||
if len(node.Value) < 5 {
|
||||
log.Println("No GUID skipping run")
|
||||
log.Println(spew.Sdump(node))
|
||||
continue
|
||||
}
|
||||
|
||||
err := self.handlenode(node)
|
||||
if err != nil {
|
||||
spew.Dump(node)
|
||||
|
|
@ -444,7 +462,12 @@ func (self *ProcessMapper) Run() {
|
|||
for response = range receiver {
|
||||
switch response.Action {
|
||||
case "set":
|
||||
self.handlenode(response.Node)
|
||||
if len(response.Node.Value) > 5 {
|
||||
self.handlenode(response.Node)
|
||||
} else {
|
||||
log.Println("No GUID skipping")
|
||||
log.Println(spew.Sdump(response))
|
||||
}
|
||||
}
|
||||
// TODO: handle deletes
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue