Fix call to system fallocate to handle errno correctly.

2021-03-19  Holger Berger  <holger.berger@googlemail.com>

gold/
	PR gold/26541
	* output.cc (gold_fallocate): Use errno when calling system fallocate.
This commit is contained in:
Holger Berger 2021-03-19 15:38:54 -07:00 committed by Cary Coutant
parent cc1849716f
commit 07b1c3dbd9
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2021-03-19 Holger Berger <holger.berger@googlemail.com>
PR gold/26541
* output.cc (gold_fallocate): Use errno when calling system fallocate.
2021-03-19 Cary Coutant <ccoutant@gmail.com>
PR gold/26585

View File

@ -141,12 +141,14 @@ gold_fallocate(int o, off_t offset, off_t len)
#ifdef HAVE_FALLOCATE
{
errno = 0;
int err = ::fallocate(o, 0, offset, len);
if (err != EINVAL && err != ENOSYS && err != EOPNOTSUPP)
return err;
if (err < 0 && errno != EINVAL && errno != ENOSYS && errno != EOPNOTSUPP)
return errno;
}
#endif // defined(HAVE_FALLOCATE)
errno = 0;
if (::ftruncate(o, offset + len) < 0)
return errno;
return 0;