aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2002-01-07 17:51:18 +0000
committerNick Clifton <nickc@redhat.com>2002-01-07 17:51:18 +0000
commitceac3f627118f6e5933d38a6726a104bdbd6d7de (patch)
tree4bb6194e074b333ffe61d6bfa83a10db0cc2e191 /gas
parentbe2d1673e40d3e6de84cddb2a9c27140b390808f (diff)
downloadfsf-binutils-gdb-ceac3f627118f6e5933d38a6726a104bdbd6d7de.zip
fsf-binutils-gdb-ceac3f627118f6e5933d38a6726a104bdbd6d7de.tar.gz
fsf-binutils-gdb-ceac3f627118f6e5933d38a6726a104bdbd6d7de.tar.bz2
do not allow size or nbytes to go negative.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/read.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 5d5ece9..77f1628 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2002-01-07 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * read.c (emit_expr): Do not allow 'size' or 'nbytes' to go
+ negative.
+
2002-01-06 Alan Modra <amodra@bigpond.net.au>
* config/tc-m68k.h (md_prepare_relax_scan): Rewrite.
diff --git a/gas/read.c b/gas/read.c
index 5fc9511..b0446c8 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -3683,7 +3683,7 @@ emit_expr (exp, nbytes)
}
nums = generic_bignum + size / CHARS_PER_LITTLENUM;
- while (size > 0)
+ while (size >= CHARS_PER_LITTLENUM)
{
--nums;
md_number_to_chars (p, (valueT) *nums, CHARS_PER_LITTLENUM);
@@ -3694,7 +3694,7 @@ emit_expr (exp, nbytes)
else
{
nums = generic_bignum;
- while (size > 0)
+ while (size >= CHARS_PER_LITTLENUM)
{
md_number_to_chars (p, (valueT) *nums, CHARS_PER_LITTLENUM);
++nums;
@@ -3703,7 +3703,7 @@ emit_expr (exp, nbytes)
nbytes -= CHARS_PER_LITTLENUM;
}
- while (nbytes > 0)
+ while (nbytes >= CHARS_PER_LITTLENUM)
{
md_number_to_chars (p, extra_digit, CHARS_PER_LITTLENUM);
nbytes -= CHARS_PER_LITTLENUM;