Commit Message
From: Hongjiu Zhang <noctuorare@gmail.com>
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.
2016-03-06 Hongjiu Zhang <noctuorare@gmail.com>
* elf/sln.c (makesymlink): Change stat to stat64, and lstat to lstat64.
---
elf/sln.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Comments
On 03/07/2016 02:21 AM, Mike Frysinger wrote:
> 2016-03-06 Hongjiu Zhang <noctuorare@gmail.com>
>
> * elf/sln.c (makesymlink): Change stat to stat64, and lstat to lstat64.
Should say “struct stat” instead of “stat”, to avoid confusion.
Otherwise good.
Thanks,
Florian
On Sun, 6 Mar 2016, Mike Frysinger wrote:
> 2016-03-06 Hongjiu Zhang <noctuorare@gmail.com>
>
> * elf/sln.c (makesymlink): Change stat to stat64, and lstat to lstat64.
This is [BZ #15333] (but that bug should not be closed as fixed unless
there are no further issues of this form left).
On 07 Mar 2016 16:41, Joseph Myers wrote:
> On Sun, 6 Mar 2016, Mike Frysinger wrote:
> > 2016-03-06 Hongjiu Zhang <noctuorare@gmail.com>
> >
> > * elf/sln.c (makesymlink): Change stat to stat64, and lstat to lstat64.
>
> This is [BZ #15333] (but that bug should not be closed as fixed unless
> there are no further issues of this form left).
thanks. i've linked the ChangeLog entry to that bug. i've also added
a list of programs/libraries that look suspicious so we can at least
have an end goal to close the bug.
-mike
@@ -164,11 +164,11 @@ makesymlinks (const char *file)
static int
makesymlink (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))
{