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]

Reply via email to