mirror of
				https://github.com/ton-blockchain/ton
				synced 2025-03-09 15:40:10 +00:00 
			
		
		
		
	Fix UB in blst aggregate verify (#1107)
This commit is contained in:
		
							parent
							
								
									140320b0db
								
							
						
					
					
						commit
						f7e189f272
					
				
					 1 changed files with 2 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -93,12 +93,13 @@ bool aggregate_verify(const std::vector<std::pair<P1, td::BufferSlice>> &pubs_ms
 | 
			
		|||
      return false;
 | 
			
		||||
    }
 | 
			
		||||
    std::unique_ptr<blst::Pairing> pairing = std::make_unique<blst::Pairing>(true, DST);
 | 
			
		||||
    blst::P2_Affine p2_zero;
 | 
			
		||||
    for (const auto &p : pubs_msgs) {
 | 
			
		||||
      blst::P1_Affine p1(p.first.data(), P1_SIZE);
 | 
			
		||||
      if (!p1.in_group() || p1.is_inf()) {
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
      pairing->aggregate(&p1, nullptr, (const td::uint8 *)p.second.data(), p.second.size());
 | 
			
		||||
      pairing->aggregate(&p1, &p2_zero, (const td::uint8 *)p.second.data(), p.second.size());
 | 
			
		||||
    }
 | 
			
		||||
    pairing->commit();
 | 
			
		||||
    blst::P2_Affine p2(sig.data(), P2_SIZE);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue