mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 19:52:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- System.cc
 | |
| +++ System.cc
 | |
| @@ -43,7 +43,7 @@ static inline int memReadStat(int field)
 | |
|      pid_t pid = getpid();
 | |
|      int   value;
 | |
|  
 | |
| -    sprintf(name, "/proc/%d/statm", pid);
 | |
| +    snprintf(name, 256, "/proc/%d/statm", pid);
 | |
|      FILE* in = fopen(name, "rb");
 | |
|      if (in == NULL) return 0;
 | |
|  
 | |
| @@ -60,7 +60,7 @@ static inline int memReadPeak(void)
 | |
|      char  name[256];
 | |
|      pid_t pid = getpid();
 | |
|  
 | |
| -    sprintf(name, "/proc/%d/status", pid);
 | |
| +    snprintf(name, 256, "/proc/%d/status", pid);
 | |
|      FILE* in = fopen(name, "rb");
 | |
|      if (in == NULL) return 0;
 | |
|  
 | |
| --- Vec.h
 | |
| +++ Vec.h
 | |
| @@ -100,7 +100,13 @@ void vec<T,_Size>::capacity(Size min_cap) {
 | |
|      Size add = max((min_cap - cap + 1) & ~1, ((cap >> 1) + 2) & ~1);   // NOTE: grow by approximately 3/2
 | |
|      const Size size_max = std::numeric_limits<Size>::max();
 | |
|      if ( ((size_max <= std::numeric_limits<int>::max()) && (add > size_max - cap))
 | |
| -    ||   (((data = (T*)::realloc(data, (cap += add) * sizeof(T))) == NULL) && errno == ENOMEM) )
 | |
| +    ||   (
 | |
| +#ifdef _DEFAULT_SOURCE
 | |
| +            ((data = (T*)::reallocarray(data, (cap += add), sizeof(T))) == NULL)
 | |
| +#else
 | |
| +            ((data = (T*)::realloc(data, (cap += add) * sizeof(T))) == NULL) 
 | |
| +#endif
 | |
| +	&& errno == ENOMEM) )
 | |
|          throw OutOfMemoryException();
 | |
|   }
 | |
|  
 |