<br><font size=2 face="sans-serif">Sandor,</font>
<br>
<br><font size=2 face="sans-serif">I can not duplicate the error. &nbsp;When
you say buffer overflow do you mean a segmentation fault or a memory checker
report of an error?</font>
<br>
<br><font size=2 face="sans-serif">I downloaded a clean copy of clp and
added lots of asserts and was running electricfence but got no errors.</font>
<br>
<br><font size=2 face="sans-serif">Using -g </font>
<br><font size=2 face="sans-serif">RedHat 9.0 Pentium 4</font>
<br><font size=2 face="sans-serif">gcc 3.2.2</font>
<br>
<br><font size=2 face="sans-serif">The sizes should be number of rows for
dual and number of rows+columns for primal. &nbsp;An overflow would be
an error. &nbsp;The idea is that on large problems the infeasibilities
(primal or dual) change slowly so that it is worth keeping a list and updating
it (especially as we need square of infeasibility for steepest edge algorithms).
&nbsp;If a variable was infeasible and goes feasible then the infeasibility
value is not set to zero (as then we might add it back again and then we
could get overflow) but to 1.0e-100.</font>
<br>
<br><font size=2 face="sans-serif">Any further information would be helpful
- maybe just to me and not posted for discussion.</font>
<br>
<br><font size=2 face="sans-serif">John Forrest</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>sandor szedmak &lt;ss03v@ecs.soton.ac.uk&gt;</b>
</font>
<br><font size=1 face="sans-serif">Sent by: coin-discuss-admin@www-124.southbury.usf.ibm.com</font>
<p><font size=1 face="sans-serif">03/11/2004 06:15 AM</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
coin-discuss</font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td valign=top><font size=1 face="sans-serif">coin-discuss@www-124.southbury.usf.ibm.com</font>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td valign=top>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td valign=top><font size=1 face="sans-serif">[Coin-discuss] 2 error +
1 ,may be, recommended correction</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2><tt>Hi,<br>
<br>
I just started to use Clp from COIN.<br>
I found two buffer overflow errors:<br>
<br>
---------------------------------------------------<br>
1.<br>
In the file:<br>
 &nbsp; &nbsp;ClpDualRowSteepest.cpp <br>
the buffer infeasible_ goes beyond its capacity.<br>
<br>
The error can be produced by<br>
 &nbsp; &nbsp;clp -unitTest<br>
using the file<br>
 &nbsp; &nbsp;finnis.mps<br>
<br>
A possible correction can be<br>
 &nbsp; &nbsp; &nbsp;infeasible_ = new CoinIndexedVector();<br>
 &nbsp; &nbsp; &nbsp;infeasible_-&gt;reserve(max(numberRows,numberColumns));<br>
or<br>
 &nbsp; &nbsp; &nbsp;infeasible_ = new CoinIndexedVector();<br>
 &nbsp; &nbsp; &nbsp;infeasible_-&gt;reserve(numberRows+numberColumns);<br>
in the function<br>
 &nbsp; &nbsp;ClpDualRowSteepest::saveWeights(ClpSimplex * model,int mode)<br>
<br>
The original version is<br>
 &nbsp; &nbsp; &nbsp;infeasible_ = new CoinIndexedVector();<br>
 &nbsp; &nbsp; &nbsp;infeasible_-&gt;reserve(numberRows);<br>
--------------------------------------------------<br>
2.<br>
In the file<br>
 &nbsp; &nbsp;ClpPrimalColumnSteepest.cpp<br>
the buffer infeasible_ does the same that is in ClpDualRowSteepest.cpp.<br>
<br>
The error can be produced by<br>
 &nbsp; &nbsp;clp -unitTest<br>
using the file<br>
 &nbsp; &nbsp;brandy.mps<br>
<br>
 Here the correction that was suggested previously has been made already.<br>
( to increase the size of infeasible_ by use of <br>
infeasible_-&gt;reserve(numberRows+numberColumns); )<br>
<br>
It happens in the function<br>
<br>
ClpPrimalColumnSteepest::pivotColumn(CoinIndexedVector * updates,<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CoinIndexedVector
* spareRow1,<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CoinIndexedVector
* spareRow2,<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CoinIndexedVector
* spareColumn1,<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CoinIndexedVector
* spareColumn2)<br>
<br>
To change &quot;quickAdd&quot; to &quot;add&quot; does not help on this
problem.<br>
Unfortunately I have not found a appropriate correction to this error yet.<br>
<br>
-------------------------------------------------<br>
My programming environment:<br>
<br>
Suse Linux 8.2(Intel Pentium),<br>
GNU C++ &nbsp;3.3-23<br>
Coin + Clp was downloaded by cvs on 8/03/2004<br>
------------------------------------------------<br>
<br>
Best regards<br>
<br>
Sandor Szedmak<br>
Electronics and Computer Science<br>
University of Southampton<br>
United Kingdom<br>
<br>
<br>
_______________________________________________<br>
Coin-discuss mailing list<br>
Coin-discuss@www-124.ibm.com<br>
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-discuss<br>
</tt></font>
<br>