Re: BUG #16953: OOB access while converting "interval" to char
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Julien Rouhaud <rjuju123@gmail.com>
Cc: t.larionov@postgrespro.ru, pgsql-bugs@lists.postgresql.org
Date: 2021-04-09T10:58:51Z
Lists: pgsql-bugs
On Fri, Apr 09, 2021 at 06:42:46PM +0800, Julien Rouhaud wrote: > I'm not sure what you mean by that. We receive a pg_tm struct which can't > contain more than 12 in tm_mon right? And actually for intervals it will > reduce "12 months" to "1 year 0 month", so to_char previously didn't report > anything for 12 months either. I did not take the time to look in details, but for reference I just imagined that a formula like this one would give pretty much the position in rm_months_upper: M_PER_Y - ((tm_mon % M_PER_Y) + M_PER_Y) % M_PER_Y > Hearing no other opinion I went with -1 -> december and so on in attached v2. > I also fixed the "[-]12 months" case and updated the regression tests. Given > the extra code needed to deduce the correct array position I factorized DCH_RM > and DCH_rm. Yep. The regression tests show what I would expect. I'll check in details later. -- Michael
Commits
-
Fix out-of-bound memory access for interval -> char conversion
- 6540322fad8b 9.6.22 landed
- 1cc110f68dcc 10.17 landed
- 5656f2c3dce5 11.12 landed
- 82dd5706ee5a 12.7 landed
- be79debd9688 13.3 landed
- 7a3972597f6e 14.0 landed