Browse Source

Merge pull request #4683 from heyitsanthony/recipes-err-handling

contrib/recipes: fix nil dereferences on error paths
Anthony Romano 9 years ago
parent
commit
06f950f614
2 changed files with 6 additions and 0 deletions
  1. 3 0
      contrib/recipes/double_barrier.go
  2. 3 0
      contrib/recipes/stm.go

+ 3 - 0
contrib/recipes/double_barrier.go

@@ -74,6 +74,9 @@ func (b *DoubleBarrier) Enter() error {
 // Leave waits for "count" processes to leave the barrier then returns
 // Leave waits for "count" processes to leave the barrier then returns
 func (b *DoubleBarrier) Leave() error {
 func (b *DoubleBarrier) Leave() error {
 	resp, err := b.client.Get(b.ctx, b.key+"/waiters", clientv3.WithPrefix())
 	resp, err := b.client.Get(b.ctx, b.key+"/waiters", clientv3.WithPrefix())
+	if err != nil {
+		return err
+	}
 	if len(resp.Kvs) == 0 {
 	if len(resp.Kvs) == 0 {
 		return nil
 		return nil
 	}
 	}

+ 3 - 0
contrib/recipes/stm.go

@@ -91,6 +91,9 @@ func (s *STM) commit() (ok bool, rr error) {
 		puts = append(puts, v3.OpPut(k, v))
 		puts = append(puts, v3.OpPut(k, v))
 	}
 	}
 	txnresp, err := s.client.Txn(context.TODO()).If(cmps...).Then(puts...).Commit()
 	txnresp, err := s.client.Txn(context.TODO()).If(cmps...).Then(puts...).Commit()
+	if err != nil {
+		return false, err
+	}
 	return txnresp.Succeeded, err
 	return txnresp.Succeeded, err
 }
 }