RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [email protected] Module: rpm Date: 24-Apr-2010 16:28:11 Branch: HEAD Handle: 2010042414281001 Modified files: rpm CHANGES rpm/rpmio rpmbf.c Log: - rpmbf: sanity checks on rpmbfParam(n,e) arguments. Summary: Revision Changes Path 1.3335 +1 -0 rpm/CHANGES 2.10 +17 -2 rpm/rpmio/rpmbf.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.3334 -r1.3335 CHANGES --- rpm/CHANGES 21 Apr 2010 21:27:36 -0000 1.3334 +++ rpm/CHANGES 24 Apr 2010 14:28:10 -0000 1.3335 @@ -1,5 +1,6 @@ 5.2b1 -> 5.3a1 + - jbj: rpmbf: sanity checks on rpmbfParam(n,e) arguments. - jbj: rpmvt: add header virtual table (no arrays/blobs yet). - jbj: rpmvt: add rpmtags virtual table. - jbj: rpmvt: permit column data types. @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmbf.c ============================================================================ $ cvs diff -u -r2.9 -r2.10 rpmbf.c --- rpm/rpmio/rpmbf.c 10 Feb 2010 18:30:58 -0000 2.9 +++ rpm/rpmio/rpmbf.c 24 Apr 2010 14:28:11 -0000 2.10 @@ -201,8 +201,23 @@ void rpmbfParams(size_t n, double e, size_t * mp, size_t * kp) { - size_t m = (size_t)((n * log(e)) / (log(1.0 / pow(2.0, log(2.0)))) + 0.5); - size_t k = (size_t) ((m * log(2.0)) / n); + static size_t _nmin = 10; + static size_t _n = 10000; + static size_t _nmax = 1 * 1000 * 1000 * 1000; + static double _emin = 1.0e-10; + static double _e = 1.0e-4; + static double _emax = 1.0e-2; + size_t m; + size_t k; + + /* XXX sanity checks on (n,e) args. */ + if (!(n >= _nmin && _n <= _nmax)) + n = _n; + if (!(e >= _emin && _e <= _emax)) + e = _e; + + m = (size_t)((n * log(e)) / (log(1.0 / pow(2.0, log(2.0)))) + 0.5); + k = (size_t) ((m * log(2.0)) / n); if (mp) *mp = m; if (kp) *kp = k; if (_rpmbf_debug) @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository [email protected]
