binding: avoid 2038 problem on 32-bit architectures (#2450)
Function setTimeField calls strconv.ParseInt with bit size 0 when parsing Unix time, which means it is equivalent to specifying 32 on 32-bit architectures. This causes the function to suffer from the year 2038 problem. To fix it and keep the behavior the same on both 32-bit and 64-bit architectures, explicitly specify bit size 64. Co-authored-by: thinkerou <thinkerou@gmail.com>
This commit is contained in:
		| @ -270,7 +270,7 @@ func setTimeField(val string, structField reflect.StructField, value reflect.Val | ||||
|  | ||||
| 	switch tf := strings.ToLower(timeFormat); tf { | ||||
| 	case "unix", "unixnano": | ||||
| 		tv, err := strconv.ParseInt(val, 10, 0) | ||||
| 		tv, err := strconv.ParseInt(val, 10, 64) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
|  | ||||
		Reference in New Issue
	
	Block a user