diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 8d825a7bb2..502ba653e2 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,3 +1,7 @@ +Tue Sep 17 11:04:50 1996 James G. Smith + + * run.c (main): Explicitly cast malloc() parameter. + Thu Sep 12 11:27:21 1996 Michael Meissner * run.c (sim_bfd): New global to hold the bfd pointer for the diff --git a/sim/common/run.c b/sim/common/run.c index 982d99c7ad..76cc48a5de 100644 --- a/sim/common/run.c +++ b/sim/common/run.c @@ -112,13 +112,22 @@ main (ac, av) for (s = abfd->sections; s; s = s->next) if (abfd && (s->flags & SEC_LOAD)) { - unsigned char *buffer = (unsigned char *)malloc (bfd_section_size (abfd, s)); - bfd_get_section_contents (abfd, - s, - buffer, - 0, - bfd_section_size (abfd, s)); - sim_write (s->vma, buffer, bfd_section_size (abfd, s)); + unsigned char *buffer = (unsigned char *)malloc ((size_t)(bfd_section_size (abfd, s))); + if (buffer != NULL) + { + bfd_get_section_contents (abfd, + s, + buffer, + 0, + bfd_section_size (abfd, s)); + sim_write (s->vma, buffer, bfd_section_size (abfd, s)); + } + else + { + fprintf (stderr, "run: failed to allocate section buffer: %s\n", + bfd_errmsg(bfd_get_error())); + exit (1); + } } start_address = bfd_get_start_address (abfd);