浏览代码

return NULL if year is too big

Mike Frysinger 20 年之前
父节点
当前提交
6fdc49d6b5
共有 1 个文件被更改,包括 12 次插入0 次删除
  1. 12 0
      libc/misc/time/time.c

+ 12 - 0
libc/misc/time/time.c

@@ -365,10 +365,22 @@ char *asctime_r(register const struct tm *__restrict ptm,
 			tmp /= 10;
 			tmp /= 10;
 		} while (*--buffer == '?');
 		} while (*--buffer == '?');
 	}
 	}
+/*	Not sure if we should even bother ...
+	} else {
+		__set_errno(EOVERFLOW);
+		return NULL;
+	}
+*/
 #else  /* SAFE_ASCTIME_R */
 #else  /* SAFE_ASCTIME_R */
 	buffer += 23;
 	buffer += 23;
 	tmp = ptm->tm_year + 1900;
 	tmp = ptm->tm_year + 1900;
 	assert( ((unsigned int) tmp) < 10000 );
 	assert( ((unsigned int) tmp) < 10000 );
+/*	Not sure if we should even bother ...
+	if ( ((unsigned int) tmp) >= 10000 ) {
+		__set_errno(EOVERFLOW);
+		return NULL;
+	}
+*/
 	do {
 	do {
 		*buffer = '0' + (tmp % 10);
 		*buffer = '0' + (tmp % 10);
 		tmp /= 10;
 		tmp /= 10;