Changeset 1ba61ed in git for libpolys


Ignore:
Timestamp:
Sep 13, 2017, 3:49:06 PM (7 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '2a584933abf2a2d3082034c7586d38bb6de1a30a')
Children:
6932bc7f98e394d56f60843c8b3372bd4c4e4b46
Parents:
b034c347789bcd8c6a686ffe3872a93603f716ae
Message:
fix: avoid int overflow in ntSize
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libpolys/polys/ext_fields/transext.cc

    rb034c3 r1ba61ed  
    17991799  fraction f = (fraction)a;
    18001800  poly p = NUM(f);
    1801   int noOfTerms = 0;
    1802   int numDegree = 0;
     1801  unsigned long noOfTerms = 0;
     1802  unsigned long numDegree = 0;
    18031803  if (p!=NULL)
    18041804  {
     
    18061806    noOfTerms = pLength(p);
    18071807  }
    1808   int denDegree = 0;
     1808  unsigned long denDegree = 0;
    18091809  if (!DENIS1(f))
    18101810  {
     
    18131813  }
    18141814  ntTest(a); // !!!!
    1815   return ((numDegree + denDegree)*(numDegree + denDegree) + 1) * noOfTerms; // must be >0
     1815  // avoid int overflow:
     1816  unsigned long t= ((numDegree + denDegree)*(numDegree + denDegree) + 1) * noOfTerms; // must be >0
     1817  if (t>INT_MAX) return INT_MAX;
     1818  else return (int)t;
    18161819}
    18171820
Note: See TracChangeset for help on using the changeset viewer.