summaryrefslogtreecommitdiff
path: root/bfd/ptrace-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/ptrace-core.c')
-rw-r--r--bfd/ptrace-core.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/bfd/ptrace-core.c b/bfd/ptrace-core.c
index 704391af9a..998b1b487f 100644
--- a/bfd/ptrace-core.c
+++ b/bfd/ptrace-core.c
@@ -64,8 +64,9 @@ ptrace_unix_core_file_p (abfd)
int val;
struct ptrace_user u;
struct trad_core_struct *rawptr;
+ bfd_size_type amt;
- val = bfd_read ((void *)&u, 1, sizeof u, abfd);
+ val = bfd_bread ((void *)&u, (bfd_size_type) sizeof u, abfd);
if (val != sizeof u || u.pt_magic != _BCS_PTRACE_MAGIC
|| u.pt_rev != _BCS_PTRACE_REV)
{
@@ -78,8 +79,8 @@ ptrace_unix_core_file_p (abfd)
/* Allocate both the upage and the struct core_data at once, so
a single free() will free them both. */
- rawptr = (struct trad_core_struct *)
- bfd_zalloc (abfd, sizeof (struct trad_core_struct));
+ amt = sizeof (struct trad_core_struct);
+ rawptr = (struct trad_core_struct *) bfd_zalloc (abfd, amt);
if (rawptr == NULL)
return 0;
@@ -91,13 +92,14 @@ ptrace_unix_core_file_p (abfd)
/* Create the sections. This is raunchy, but bfd_close wants to free
them separately. */
- core_stacksec (abfd) = (asection *) bfd_zalloc (abfd, sizeof (asection));
+ amt = sizeof (asection);
+ core_stacksec (abfd) = (asection *) bfd_zalloc (abfd, amt);
if (core_stacksec (abfd) == NULL)
return NULL;
- core_datasec (abfd) = (asection *) bfd_zalloc (abfd, sizeof (asection));
+ core_datasec (abfd) = (asection *) bfd_zalloc (abfd, amt);
if (core_datasec (abfd) == NULL)
return NULL;
- core_regsec (abfd) = (asection *) bfd_zalloc (abfd, sizeof (asection));
+ core_regsec (abfd) = (asection *) bfd_zalloc (abfd, amt);
if (core_regsec (abfd) == NULL)
return NULL;