From owner-freebsd-bugs Tue Dec 29 05:40:10 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id FAA00963 for freebsd-bugs-outgoing; Tue, 29 Dec 1998 05:40:10 -0800 (PST) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id FAA00955 for ; Tue, 29 Dec 1998 05:40:09 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id FAA26064; Tue, 29 Dec 1998 05:40:00 -0800 (PST) Received: (from nobody@localhost) by hub.freebsd.org (8.8.8/8.8.8) id FAA00418; Tue, 29 Dec 1998 05:36:01 -0800 (PST) (envelope-from nobody) Message-Id: <199812291336.FAA00418@hub.freebsd.org> Date: Tue, 29 Dec 1998 05:36:01 -0800 (PST) From: schmr000@mail.uni-mainz.de To: freebsd-gnats-submit@FreeBSD.ORG X-Send-Pr-Version: www-1.0 Subject: bin/9233: gmp's mpq_add and mpq_sub are buggy Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 9233 >Category: bin >Synopsis: gmp's mpq_add and mpq_sub are buggy >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Dec 29 05:40:00 PST 1998 >Last-Modified: >Originator: Ralf Schmitt >Organization: >Release: 3.0 >Environment: FreeBSD myname.my.domain 3.0-RELEASE FreeBSD 3.0-RELEASE #1: Tue Dec 22 >Description: A bug in mpq_add and mpq_sub makes them work unreliably due to references outside of allocated memory (quoted from the GNU MP web pages) >How-To-Repeat: Compile and run the following program: #include #include void setRational(mpq_t &rat, const char *num, const char *den) { mpz_t tmp; mpz_init(tmp); mpz_set_str(tmp, num, 10); mpq_set_num(rat, tmp); mpz_set_str(tmp, den, 10); mpq_set_den(rat, tmp); mpz_clear(tmp); } void test() { mpq_t r1,r2, result; mpq_init(r1); mpq_init(r2); mpq_init(result); setRational(r1,"1999999999999999999","10000000000000000000000000000000000"); setRational(r2, "-1","100000000"); cout << "Calling mpq_sub" << endl; mpq_sub(result, r1, r2); } int main() { test(); } >Fix: Apply the diffs from the GNU MP web pages: http://www.matematik.su.se/~tege/gmp >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message