https://bugs.kde.org/show_bug.cgi?id=353192

Patrick Collins <pscoll...@google.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pscoll...@google.com

--- Comment #4 from Patrick Collins <pscoll...@google.com> ---
I was bitten by this as well. I ended up with program headers that looked like
this:

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  LOAD           0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x00000000005eabf4 0x00000000005eabf4  R**W**E    200000
  LOAD           0x0000000000600000 0x0000000000800000 0x0000000000800000
                 0x000000000003b3f0 0x000000000004efe8  RW     200000
  DYNAMIC        0x000000000060f460 0x000000000080f460 0x000000000080f460
                 0x0000000000000180 0x0000000000000180  RW     8
  NOTE           0x00000000000001c8 0x00000000000001c8 0x00000000000001c8
                 0x0000000000000024 0x0000000000000024  R      4
  GNU_EH_FRAME   0x000000000057c050 0x000000000057c050 0x000000000057c050
                 0x000000000001600c 0x000000000001600c  R      4
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RW     10
  GNU_RELRO      0x0000000000600000 0x0000000000800000 0x0000000000800000
                 0x0000000000011000 0x0000000000011000  R      1

where the W flag in section 00 was caused by a combination of unusual
__attribute__((__section__(foo))) annotations in GCC. I am also on Ubuntu, with
amd64. I think this is properly called a bug, at least on amd64, because there
is nothing in any standard that prevents .text sections from being mmaped with
rwx permissions. 


As far as I can tell, moving amd64 to the same bucket as x86 and accepting r.x
permissions would be harmless, since Valgrind will only try to read in debug
symbols for a particular section if it finds *both* a section marked as
executable *and* a .debug entry that corresponds to that section. I assume the
rationale here is that if users are trying to treat a writeable section as a
text section, then they're probably doing something wrong --- but this won't
change existing behavior unless the user also provides debug info corresponding
to that section (in which case they probably really do want to treat that
section as text-like).

At the very least, emitting a warning when --trace-symbtab is turned on would
be helpful, because this was very difficult to track down.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to