mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Fix overflow check in tm2timestamp (this time for sure).
I fixed this code back in commit 841b4a2d5, but didn't think carefully
enough about the behavior near zero, which meant it improperly rejected
1999-12-31 24:00:00.  Per report from Magnus Hagander.
			
			
This commit is contained in:
		@@ -76,8 +76,9 @@ tm2timestamp(struct tm * tm, fsec_t fsec, int *tzp, timestamp * result)
 | 
			
		||||
	if ((*result - time) / USECS_PER_DAY != dDate)
 | 
			
		||||
		return -1;
 | 
			
		||||
	/* check for just-barely overflow (okay except time-of-day wraps) */
 | 
			
		||||
	if ((*result < 0 && dDate >= 0) ||
 | 
			
		||||
		(*result >= 0 && dDate < 0))
 | 
			
		||||
	/* caution: we want to allow 1999-12-31 24:00:00 */
 | 
			
		||||
	if ((*result < 0 && dDate > 0) ||
 | 
			
		||||
		(*result > 0 && dDate < -1))
 | 
			
		||||
		return -1;
 | 
			
		||||
#else
 | 
			
		||||
	*result = dDate * SECS_PER_DAY + time;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user