Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit478c95a

Browse files
committed
Prevent timetz2tm() from scribbling on its input in HAVE_INT64_TIMESTAMP case.
1 parent1a9b061 commit478c95a

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

‎src/backend/utils/adt/date.c

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.78 2003/01/31 01:08:08 tgl Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.79 2003/02/13 17:04:19 tgl Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -1349,23 +1349,22 @@ timetz_out(PG_FUNCTION_ARGS)
13491349

13501350
/* timetz2tm()
13511351
* Convert TIME WITH TIME ZONE data type to POSIX time structure.
1352-
* For dates within the system-supported time_t range, convert to the
1353-
*local time zone. If out of this range, leave as GMT. - tgl 97/05/27
13541352
*/
13551353
staticint
13561354
timetz2tm(TimeTzADT*time,structtm*tm,fsec_t*fsec,int*tzp)
13571355
{
13581356
#ifdefHAVE_INT64_TIMESTAMP
1359-
tm->tm_hour= (time->time /INT64CONST(3600000000));
1360-
time->time-= (tm->tm_hour*INT64CONST(3600000000));
1361-
tm->tm_min= (time->time /INT64CONST(60000000));
1362-
time->time-= (tm->tm_min*INT64CONST(60000000));
1363-
tm->tm_sec= (time->time /INT64CONST(1000000));
1364-
*fsec= (time->time- (tm->tm_sec*INT64CONST(1000000)));
1357+
int64trem=time->time;
1358+
1359+
tm->tm_hour= (trem /INT64CONST(3600000000));
1360+
trem-= (tm->tm_hour*INT64CONST(3600000000));
1361+
tm->tm_min= (trem /INT64CONST(60000000));
1362+
trem-= (tm->tm_min*INT64CONST(60000000));
1363+
tm->tm_sec= (trem /INT64CONST(1000000));
1364+
*fsec= (trem- (tm->tm_sec*INT64CONST(1000000)));
13651365
#else
1366-
doubletrem;
1366+
doubletrem=time->time;
13671367

1368-
trem=time->time;
13691368
TMODULO(trem,tm->tm_hour,3600e0);
13701369
TMODULO(trem,tm->tm_min,60e0);
13711370
TMODULO(trem,tm->tm_sec,1e0);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp