BUG #6460: routine my_log2 use incorrect data type ?
| От | zoulx1982@163.com |
|---|---|
| Тема | BUG #6460: routine my_log2 use incorrect data type ? |
| Дата | |
| Msg-id | E1RyGKF-0007i4-6P@wrigleys.postgresql.org обсуждение исходный текст |
| Ответы |
Re: BUG #6460: routine my_log2 use incorrect data type ?
|
| Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 6460 Logged by: lxzou Email address: zoulx1982@163.com PostgreSQL version: 9.1.2 Operating system: Windows Server 2008 64 bit Description:=20=20=20=20=20=20=20=20 Hi, I startup postgres in win server 2008 64-bit with shared_buffers=3D1073741819, but find it doesn't work. I debug the postgres use vs2008, and find it enter an Infinite loop in my_log2. when the parameter num is between (2^30) + 1 and (2^31) -1, it will be an Infinite loop. because long in win 64 is 4 bytes, so (2^30) << 1 is 2^31, i.e. -2^31. move left again it will be zero. size_t in win64 is 8 bytes=EF=BC=8Cso add_size and mul_size can't check ove= rflow, but in win32 it can do that. So, whether we should use Size instead of long ? Best wishes
В списке pgsql-bugs по дате отправления: