[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1346769] Re: /proc/self/maps content returned to 32-bi

From: Peter Maydell
Subject: [Qemu-devel] [Bug 1346769] Re: /proc/self/maps content returned to 32-bits guest under 64-bits qemu
Date: Fri, 17 Jun 2016 16:05:30 -0000

We removed the ifdefs at some point; the test case in this bug report
now runs successfully.

** Changed in: qemu
       Status: New => Fix Released

You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.

  /proc/self/maps content returned to 32-bits guest under 64-bits qemu

Status in QEMU:
  Fix Released

Bug description:
  Reading /proc/self/maps a user doesn't get a stack record. Not all
  programs relies on the maps file but some do.

  The bug found by running 32-bits binaries with address sanitizer
  (Asan) instrumentations under 64-bit qemu.

  $ echo "int main() { return 0; }" > /tmp/test.c
  $ gcc -m32 -fsanitize=address -fno-common -Wall -g -fPIC -o /tmp/test 
  $ qemu-i386-static /tmp/test
  ==4092==AddressSanitizer CHECK failed: 
 "(((uptr)&rl >= start && (uptr)&rl < end)) != (0)" (0x0, 0x0)
      #0 0xf632ff01 (/home/michail/build/lib32/libasan.so.1+0x53f01)
      #1 0xf6333f49 (/home/michail/build/lib32/libasan.so.1+0x57f49)
      #2 0xf6338785 (/home/michail/build/lib32/libasan.so.1+0x5c785)
      #3 0xf6338bd1 (/home/michail/build/lib32/libasan.so.1+0x5cbd1)
      #4 0xf6331baf (/home/michail/build/lib32/libasan.so.1+0x55baf)
      #5 0xf6331dca (/home/michail/build/lib32/libasan.so.1+0x55dca)
      #6 0xf6331f5a (/home/michail/build/lib32/libasan.so.1+0x55f5a)
      #7 0xf6330bd4 (/home/michail/build/lib32/libasan.so.1+0x54bd4)
      #8 0xf67ebeec (/lib/ld-linux.so.2+0xeeec)
      #9 0xf67de10e (/lib/ld-linux.so.2+0x110e)

  This happened because during initialization Asan can't find stack

  For some reasons Qemu wants to report stack boundaries just for
  several arch targets skipping other ones. This is from linux-
  user/syscall.c open_self_maps()

  #if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
      dprintf(fd, "%08llx-%08llx rw-p %08llx 00:00 0          [stack]\n",
                  (unsigned long long)ts->info->stack_limit,
                  (unsigned long long)(ts->info->start_stack +
                                       (TARGET_PAGE_SIZE - 1)) & 
                  (unsigned long long)0);

  Not very clear why the case covers just specific targets.

  This bug continues the previously reported issue with not hiden system
  map http://lists.nongnu.org/archive/html/qemu-

To manage notifications about this bug go to:

reply via email to

[Prev in Thread] Current Thread [Next in Thread]