aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2009-05-24 11:47:27 +0000
committerAlan Modra <amodra@gmail.com>2009-05-24 11:47:27 +0000
commit5c93f09bedf7ff02efd6d82504bbc3c68df6d197 (patch)
tree3c81714b03d55b3dc3a3862f19a060090a423ea4
parent5e31abdf71821ee0b43ee64f95b3ee7d161835b5 (diff)
downloadgdb-5c93f09bedf7ff02efd6d82504bbc3c68df6d197.zip
gdb-5c93f09bedf7ff02efd6d82504bbc3c68df6d197.tar.gz
gdb-5c93f09bedf7ff02efd6d82504bbc3c68df6d197.tar.bz2
* bfdio.c (bfd_seek): Formatting. Ensure newly allocated memory
for BFD_IN_MEMORY is cleared. (bfd_bwrite): Zero excess memory allocated.
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/bfdio.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6e5652f..217b96c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2009-05-24 Alan Modra <amodra@bigpond.net.au>
+
+ * bfdio.c (bfd_seek): Formatting. Ensure newly allocated memory
+ for BFD_IN_MEMORY is cleared.
+ (bfd_bwrite): Zero excess memory allocated.
+
2009-05-22 Julian Brown <julian@codesourcery.com>
* elf32-arm.c (THUMB16_BCOND_INSN, THUMB32_INSN, THUMB32_B_INSN): New
diff --git a/bfd/bfdio.c b/bfd/bfdio.c
index d3a295c..16bbf03 100644
--- a/bfd/bfdio.c
+++ b/bfd/bfdio.c
@@ -235,6 +235,8 @@ bfd_bwrite (const void *ptr, bfd_size_type size, bfd *abfd)
bim->size = 0;
return 0;
}
+ if (newsize > bim->size)
+ memset (bim->buffer + bim->size, 0, newsize - bim->size);
}
}
memcpy (bim->buffer + abfd->where, ptr, (size_t) size);
@@ -342,8 +344,8 @@ bfd_seek (bfd *abfd, file_ptr position, int direction)
if (abfd->where > bim->size)
{
- if ((abfd->direction == write_direction) ||
- (abfd->direction == both_direction))
+ if (abfd->direction == write_direction
+ || abfd->direction == both_direction)
{
bfd_size_type newsize, oldsize;
@@ -359,6 +361,7 @@ bfd_seek (bfd *abfd, file_ptr position, int direction)
bim->size = 0;
return -1;
}
+ memset (bim->buffer + oldsize, 0, newsize - oldsize);
}
}
else