From 10d3f6a039fb05c309243f8937c36bd3b5a6f724 Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 1 Jul 2005 08:56:09 +0000 Subject: [PATCH] * bignum.c (rb_big_neg): may be accessing bogus pointer value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ LEGAL | 10 +++------- bignum.c | 6 ++++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3fb3a3c523..8c35ea54df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Jul 1 17:55:08 2005 Yukihiro Matsumoto + + * bignum.c (rb_big_neg): may be accessing bogus pointer value. + Fri Jul 1 15:50:12 2005 NAKAMURA Usaku * missing/erf.c: need to include some headers for some platforms. diff --git a/LEGAL b/LEGAL index 80c3c8852d..8fa296ee74 100644 --- a/LEGAL +++ b/LEGAL @@ -127,14 +127,12 @@ st.[ch]: x68/*: missing/alloca.c: missing/dup2.c: -missing/erf.c: missing/finite.c: missing/hypot.c: missing/isinf.c: missing/isnan.c: missing/memcmp.c: missing/memmove.c: -missing/mkdir.c: missing/strcasecmp.c: missing/strchr.c: missing/streror.c: @@ -179,6 +177,8 @@ missing/strtoul.c: software for any purpose. It is provided "as is" without express or implied warranty. +missing/erf.c: +missing/crypt.c: missing/vsnprintf.c: This file is under the old-style BSD license. Note that the @@ -198,11 +198,7 @@ missing/vsnprintf.c: 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed by the University of - California, Berkeley and its contributors. - 4. Neither the name of the University nor the names of its contributors + 3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. diff --git a/bignum.c b/bignum.c index f1d26ffd8a..c5154dbe13 100644 --- a/bignum.c +++ b/bignum.c @@ -1055,10 +1055,12 @@ rb_big_neg(x) VALUE x; { VALUE z = rb_big_clone(x); - BDIGIT *ds = BDIGITS(z); - long i = RBIGNUM(x)->len; + BDIGIT *ds; + long i; if (!RBIGNUM(x)->sign) get2comp(z); + ds = BDIGITS(z); + i = RBIGNUM(x)->len; while (i--) { ds[i] = ~ds[i]; }