From 3733d1095f6d398f467781d27f12a25895e10908 Mon Sep 17 00:00:00 2001 From: Jackie Smith Cashion Date: Tue, 17 Sep 1996 10:10:35 +0000 Subject: [PATCH] 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. --- sim/common/ChangeLog | 4 ++++ sim/common/run.c | 23 ++++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) 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); -- 2.30.2