RE: stat() on Windows might cause error if target file is largerthan 4GB
Вложения
В списке pgsql-hackers по дате отправления:
| От | Higuchi, Daisuke |
|---|---|
| Тема | RE: stat() on Windows might cause error if target file is largerthan 4GB |
| Дата | |
| Msg-id | 1803D792815FC24D871C00D17AE95905CF6092@g01jpexmbkw24 обсуждение исходный текст |
| Ответ на | Re: stat() on Windows might cause error if target file is largerthan 4GB (Michael Paquier <michael@paquier.xyz>) |
| Ответы |
Re: stat() on Windows might cause error if target file is largerthan 4GB
|
| Список | pgsql-hackers |
Michael-san,
From: Michael Paquier [mailto:michael@paquier.xyz]
>Does something like the patch attached help?
>This makes sure that st_size is set correctly for files with a size larger than 4GB.
Thank you for creating patch, but this does not solve current problem.
Of cause setting wrong size to st_size is problem,
I think the cause of this problem is stat()'s return value (=-1).
In pgwin32_safestat(), if stat() try to deal with files with a size larger than 4GB,
the return value is -1. So, pgwin32_safestat() exits before calculating buf->st_size.
----
pgwin32_safestat(const char *path, struct stat *buf)
{
int r;
WIN32_FILE_ATTRIBUTE_DATA attr;
r = stat(path, buf);
if (r < 0)
{
...
return r;
}
...
buf->st_size = attr.nFileSizeLow;
return 0;
}
----
So, attached patch help me and strange message disappeared,
but I ignore the impact of this for others now.
Regards,
Daisuke, Higuchi
В списке pgsql-hackers по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера