This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: mmap64 with very large offset broken since glibc 2.26 (MIPS64 n32)


* Thomas De Schampheleire:

> Hello,
>
> In glibc 2.26, a change was made to the behavior of mmap64, as a fix
> for bug 21270 (mmap64 silently truncates large offset values) [1], via
> commit 158d5fa0e1906e7810bdc6ecb7bf598dcc3cd17d.
> Practically, with the new behavior, doing mmap64 with an offset larger
> than 1<<44 now fails with errno=EINVAL. The reasoning in this bug is
> that offsets greater than 1<<44  are silently truncated, and so better
> to fail early.
>
> However, I have several cases in embedded applications where such
> mmap64 with large offset values is performed, and it worked correctly
> (< 2.26). In these applications, a physical memory region is mapped
> into the virtual address space, by performing an mmap64 on /dev/mem.
> The offset is very large because this is accessing devices high up in
> the memory range.

Is the bug here that mmap64 is not used with a 64-bit argument?  Should
this system call have a long long argument?

Thanks,
Florian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]