[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    valgrind/coregrind
From:       Jeremy Fitzhardinge <jeremy () goop ! org>
Date:       2005-03-23 3:30:30
Message-ID: 20050323033030.D3B5A3CC () office ! kde ! org
[Download RAW message or body]

CVS commit by fitzhardinge: 

Handle a couple kinds of executable mutation: a read-only bss, and a
zero-length segment.


  M +9 -7      ume.c   1.42


--- valgrind/coregrind/ume.c  #1.41:1.42
@@ -244,4 +244,5 @@ ESZ(Addr) mapelf(struct elfinfo *e, ESZ(
       brkaddr = addr+memsz;
 
+      if (ROUNDUP(bss, align)-ROUNDDN(addr, align) > 0) {
       res = mmap((char *)ROUNDDN(addr, align),
                  ROUNDUP(bss, align)-ROUNDDN(addr, align),
@@ -249,4 +250,5 @@ ESZ(Addr) mapelf(struct elfinfo *e, ESZ(
       check_mmap(res, (char*)ROUNDDN(addr,align),
                  ROUNDUP(bss, align)-ROUNDDN(addr, align));
+      }
 
       /* if memsz > filesz, then we need to fill the remainder with zeroed pages */
@@ -262,5 +264,5 @@ ESZ(Addr) mapelf(struct elfinfo *e, ESZ(
 
          bytes = bss & (VKI_PAGE_SIZE - 1);
-         if (bytes > 0) {
+         if ((prot & PROT_WRITE) && (bytes > 0)) {
             bytes = VKI_PAGE_SIZE - bytes;
             memset((char *)bss, 0, bytes);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic