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

Commit9d7ded0

Browse files
committed
Avoid unportable usage of sscanf(UINT64_FORMAT).
On Mingw, it seems that scanf() doesn't necessarily accept the same formatcodes that printf() does, and in particular it may fail to recognize %llueven though printf() does. Since configure only probes printf() behaviorwhile setting up the INT64_FORMAT macros, this means it's unsafe to usethose macros with scanf(). We had only one instance of such a codingpattern, in contrib/pg_stat_statements, so change that code to avoidthe problem.Per buildfarm warnings. Back-patch to 9.0 where the troublesome codewas introduced.Michael Paquier
1 parentbf2e70b commit9d7ded0

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

‎contrib/pg_stat_statements/pg_stat_statements.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -962,7 +962,7 @@ pgss_ProcessUtility(Node *parsetree, const char *queryString,
962962
{
963963
instr_timestart;
964964
instr_timeduration;
965-
uint64rows=0;
965+
uint64rows;
966966
BufferUsagebufusage_start,
967967
bufusage;
968968
uint32queryId;
@@ -995,7 +995,15 @@ pgss_ProcessUtility(Node *parsetree, const char *queryString,
995995

996996
/* parse command tag to retrieve the number of affected rows. */
997997
if (completionTag&&
998-
sscanf(completionTag,"COPY "UINT64_FORMAT,&rows)!=1)
998+
strncmp(completionTag,"COPY ",5)==0)
999+
{
1000+
#ifdefHAVE_STRTOULL
1001+
rows=strtoull(completionTag+5,NULL,10);
1002+
#else
1003+
rows=strtoul(completionTag+5,NULL,10);
1004+
#endif
1005+
}
1006+
else
9991007
rows=0;
10001008

10011009
/* calc differences of buffer counters. */

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp