aboutsummaryrefslogtreecommitdiff
path: root/bfd/bfdio.c
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 /bfd/bfdio.c
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.
Diffstat (limited to 'bfd/bfdio.c')
-rw-r--r--bfd/bfdio.c7
1 files changed, 5 insertions, 2 deletions
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