diff options
author | Hongjiu Zhang <noctuorare@gmail.com> | 2016-03-06 20:18:21 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2016-03-07 11:45:21 -0500 |
commit | 3f749c2e7b8226eb8c6f16fb180987dc7efe35ba (patch) | |
tree | f3e04c08f0846fc22689b426bff0adc1ab9a4a57 | |
parent | 1fd66a522e9262d7ff36b015090f3989f93ba468 (diff) | |
download | glibc-3f749c2e7b8226eb8c6f16fb180987dc7efe35ba.tar.gz glibc-3f749c2e7b8226eb8c6f16fb180987dc7efe35ba.tar.xz glibc-3f749c2e7b8226eb8c6f16fb180987dc7efe35ba.zip |
sln: use stat64
When using sln on some filesystems which return 64-bit inodes, the stat call might fail during install like so: .../elf/sln .../elf/symlink.list /lib32/libc.so.6: invalid destination: Value too large for defined data type /lib32/ld-linux.so.2: invalid destination: Value too large for defined data type Makefile:104: recipe for target 'install-symbolic-link' failed Switch to using stat64 all the time to avoid this. URL: https://bugs.gentoo.org/576396 (cherry picked from commit f5e753c8c3a18a1e3c715dd11bf4dc341b5c481f) (cherry picked from commit d6778fc4b0039b2116f88218212618ca357fee2f)
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | elf/sln.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 95cc5a2a02..7663053f02 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-03-07 Hongjiu Zhang <noctuorare@gmail.com> + + * elf/sln.c (makesymlink): Change struct stat to stat64, and lstat + to lstat64. + 2015-08-05 Mike Frysinger <vapier@gentoo.org> * nptl/allocatestack.c (allocate_stack): Move stacktop decl down to diff --git a/elf/sln.c b/elf/sln.c index 1a7d24e6dc..c6601fdbfc 100644 --- a/elf/sln.c +++ b/elf/sln.c @@ -167,11 +167,11 @@ makesymlink (src, dest) const char *src; const char *dest; { - struct stat stats; + struct stat64 stats; const char *error; /* Destination must not be a directory. */ - if (lstat (dest, &stats) == 0) + if (lstat64 (dest, &stats) == 0) { if (S_ISDIR (stats.st_mode)) { |