Peter Eisentraut <peter.eisentr...@2ndquadrant.com> writes: > Attached is a more refined patch that I propose for PG10 now. Compared > to the previous rushed version, this one uses some more precise > arithmetic to size some of the buffers.
Generally +1 for switching the snprintf calls to use sizeof() rather than repeating the declared sizes of the arrays. The change in setup_formatted_log_time seems a bit weird: - char msbuf; + char msbuf; The associated call is sprintf(msbuf, ".%03d", (int) (saved_timeval.tv_usec / 1000)); Now a human can see that saved_timeval.tv_usec must be 0..999999, so that the %d format item must always emit exactly 3 characters, which means that really 5 bytes would be enough. I wouldn't expect a compiler to know that, but if it's making a generic assumption about the worst-case width of %d, shouldn't it conclude that we might need as many as 13 bytes for the buffer? Why does msbuf satisfy it if msbuf doesn't? IOW, if we're going to touch this at all, I'd be inclined to go with msbuf or so, as being more likely to satisfy compilers that have decided to try to warn about this. And maybe we should use snprintf, just for luck. regards, tom lane -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers