This is the mail archive of the glibc-bugs@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]

[Bug libc/24699] mmap64 with very large offset broken on MIPS64 n32


https://sourceware.org/bugzilla/show_bug.cgi?id=24699

--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The release/2.27/master branch has been updated by Adhemerval Zanella
<azanella@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=22bd3ab40e83ec0049bfb3bdba3b9ebdb1a6ab20

commit 22bd3ab40e83ec0049bfb3bdba3b9ebdb1a6ab20
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Jun 18 14:09:09 2019 -0300

    posix: Fix large mmap64 offset for mips64n32 (BZ#24699)

    The fix for BZ#21270 (commit 158d5fa0e19) added a mask to avoid offset
larger
    than 1^44 to be used along __NR_mmap2.  However mips64n32 users __NR_mmap,
    as mips64n64, but still defines off_t as old non-LFS type (other ILP32,
such
    x32, defines off_t being equal to off64_t).  This leads to use the same
    mask meant only for __NR_mmap2 call for __NR_mmap, thus limiting the
maximum
    offset it can use with mmap64.

    This patch fixes by setting the high mask only for __NR_mmap2 usage. The
    posix/tst-mmap-offset.c already tests it and also fails for mips64n32. The
    patch also change the test to check for an arch-specific header that
defines
    the maximum supported offset.

    Checked on x86_64-linux-gnu, i686-linux-gnu, and I also tests
tst-mmap-offset
    on qemu simulated mips64 with kernel 3.2.0 kernel for both mips-linux-gnu
and
    mips64-n32-linux-gnu.

        [BZ #24699]
        * posix/tst-mmap-offset.c: Mention BZ #24699.
        (do_test_bz21270): Rename to do_test_large_offset and use
        mmap64_maximum_offset to check for maximum expected offset value.
        * sysdeps/generic/mmap_info.h: New file.
        * sysdeps/unix/sysv/linux/mips/mmap_info.h: Likewise.
        * sysdeps/unix/sysv/linux/mmap64.c (MMAP_OFF_HIGH_MASK): Define iff
        __NR_mmap2 is used.

    (cherry picked from commit a008c76b56e4f958cf5a0d6f67d29fade89421b7)

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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