From: Jackie Smith Cashion Date: Tue, 17 Sep 1996 10:10:35 +0000 (+0000) Subject: Tue Sep 17 11:04:50 1996 James G. Smith X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3733d1095f6d398f467781d27f12a25895e10908;p=binutils-gdb.git Tue Sep 17 11:04:50 1996 James G. Smith * run.c (main): Explicitly cast malloc() parameter. This is needed because for certain builds the size field being given to malloc() is actually 64bits long, and without a cast or malloc prototype the resulting value used by malloc() depended on the host endianness, and how long long paramaters are passed into functions. --- diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 8d825a7bb29..502ba653e28 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 982d99c7ad8..76cc48a5dea 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);