From 8a7d7029c805d4cd1f98daf7adf55e5eb50d3a75 Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 1 Jul 2005 08:56:09 +0000 Subject: * bignum.c (rb_big_neg): may be accessing bogus pointer value. git-svn-id: http://svn.ruby-lang.org/repos/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 3fb3a3c52..8c35ea54d 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 80c3c8852..8fa296ee7 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 f1d26ffd8..c5154dbe1 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]; } -- cgit