@@ -2645,7 +2645,7 @@ int ClpSimplexOther::parametrics(double startingTheta, double &endingTheta, doub
2645
2645
}
2646
2646
if (maxTheta < endingTheta) {
2647
2647
char line[100 ];
2648
- sprintf (line, " Crossover considerations reduce ending theta from %g to %g\n " ,
2648
+ snprintf (line, sizeof (line) , " Crossover considerations reduce ending theta from %g to %g\n " ,
2649
2649
endingTheta, maxTheta);
2650
2650
handler_->message (CLP_GENERAL, messages_)
2651
2651
<< line << CoinMessageEol;
@@ -2757,7 +2757,7 @@ int ClpSimplexOther::parametrics(double startingTheta, double &endingTheta, doub
2757
2757
copyModel.dual ();
2758
2758
if (copyModel.problemStatus ()) {
2759
2759
char line[100 ];
2760
- sprintf (line, " Can not get to theta of %g\n " , startingTheta);
2760
+ snprintf (line, sizeof (line) , " Can not get to theta of %g\n " , startingTheta);
2761
2761
handler_->message (CLP_GENERAL, messages_)
2762
2762
<< line << CoinMessageEol;
2763
2763
canTryQuick = false ; // do slowly to get exact amount
@@ -2782,7 +2782,7 @@ int ClpSimplexOther::parametrics(double startingTheta, double &endingTheta, doub
2782
2782
}
2783
2783
perturbation_ = savePerturbation;
2784
2784
char line[100 ];
2785
- sprintf (line, " Ending theta %g\n " , endingTheta);
2785
+ snprintf (line, sizeof (line) , " Ending theta %g\n " , endingTheta);
2786
2786
handler_->message (CLP_GENERAL, messages_)
2787
2787
<< line << CoinMessageEol;
2788
2788
return problemStatus_;
@@ -2801,8 +2801,8 @@ int ClpSimplexOther::parametrics(const char *dataFile)
2801
2801
return -2 ;
2802
2802
}
2803
2803
2804
- if (!fgets (line, 200 , fp)) {
2805
- sprintf (line, " Empty parametrics file %s?" , dataFile);
2804
+ if (!fgets (line, sizeof (line) , fp)) {
2805
+ snprintf (line, sizeof (line) , " Empty parametrics file %s?" , dataFile);
2806
2806
handler_->message (CLP_GENERAL, messages_)
2807
2807
<< line << CoinMessageEol;
2808
2808
fclose (fp);
@@ -2878,14 +2878,15 @@ int ClpSimplexOther::parametrics(const char *dataFile)
2878
2878
if (intervalTheta >= endTheta)
2879
2879
intervalTheta = 0.0 ;
2880
2880
if (!good) {
2881
- sprintf (line, " Odd first line %s on file %s?" , line, dataFile);
2881
+ char line2[300 ];
2882
+ snprintf (line2, sizeof (line2), " Odd first line %s on file %s?" , line, dataFile);
2882
2883
handler_->message (CLP_GENERAL, messages_)
2883
- << line << CoinMessageEol;
2884
+ << line2 << CoinMessageEol;
2884
2885
fclose (fp);
2885
2886
return -2 ;
2886
2887
}
2887
- if (!fgets (line, 200 , fp)) {
2888
- sprintf (line, " Not enough records on parametrics file %s?" , dataFile);
2888
+ if (!fgets (line, sizeof (line) , fp)) {
2889
+ snprintf (line, sizeof (line) , " Not enough records on parametrics file %s?" , dataFile);
2889
2890
handler_->message (CLP_GENERAL, messages_)
2890
2891
<< line << CoinMessageEol;
2891
2892
fclose (fp);
@@ -2969,7 +2970,7 @@ int ClpSimplexOther::parametrics(const char *dataFile)
2969
2970
int nLine = 0 ;
2970
2971
// int nBadLine = 0;
2971
2972
int nBadName = 0 ;
2972
- while (fgets (line, 200 , fp)) {
2973
+ while (fgets (line, sizeof (line) , fp)) {
2973
2974
if (!strncmp (line, " ENDATA" , 6 ) || !strncmp (line, " COLUMN" , 6 ))
2974
2975
break ;
2975
2976
nLine++;
@@ -3046,11 +3047,11 @@ int ClpSimplexOther::parametrics(const char *dataFile)
3046
3047
strcpy (saveLine, line);
3047
3048
}
3048
3049
}
3049
- sprintf (line, " %d Row fields and %d records" , nAcross, nLine);
3050
+ snprintf (line, sizeof (line) , " %d Row fields and %d records" , nAcross, nLine);
3050
3051
handler_->message (CLP_GENERAL, messages_)
3051
3052
<< line << CoinMessageEol;
3052
3053
if (nBadName) {
3053
- sprintf (line, " ** %d records did not match on name/sequence, first bad %s" , nBadName, saveLine);
3054
+ snprintf (line, sizeof (line) , " ** %d records did not match on name/sequence, first bad %s" , nBadName, saveLine);
3054
3055
handler_->message (CLP_GENERAL, messages_)
3055
3056
<< line << CoinMessageEol;
3056
3057
returnCode = -1 ;
@@ -3061,16 +3062,16 @@ int ClpSimplexOther::parametrics(const char *dataFile)
3061
3062
}
3062
3063
delete[] rowNames;
3063
3064
} else {
3064
- sprintf (line, " Duplicate or unknown keyword - or name/number fields wrong" );
3065
+ snprintf (line, sizeof (line) , " Duplicate or unknown keyword - or name/number fields wrong" );
3065
3066
handler_->message (CLP_GENERAL, messages_)
3066
3067
<< line << CoinMessageEol;
3067
3068
returnCode = -1 ;
3068
3069
good = false ;
3069
3070
}
3070
3071
}
3071
3072
if (good && (!strncmp (line, " COLUMN" , 6 ) || !strncmp (line, " column" , 6 ))) {
3072
- if (!fgets (line, 200 , fp)) {
3073
- sprintf (line, " Not enough records on parametrics file %s after COLUMNS?" , dataFile);
3073
+ if (!fgets (line, sizeof (line) , fp)) {
3074
+ snprintf (line, sizeof (line) , " Not enough records on parametrics file %s after COLUMNS?" , dataFile);
3074
3075
handler_->message (CLP_GENERAL, messages_)
3075
3076
<< line << CoinMessageEol;
3076
3077
fclose (fp);
@@ -3141,7 +3142,7 @@ int ClpSimplexOther::parametrics(const char *dataFile)
3141
3142
int nLine = 0 ;
3142
3143
// int nBadLine = 0;
3143
3144
int nBadName = 0 ;
3144
- while (fgets (line, 200 , fp)) {
3145
+ while (fgets (line, sizeof (line) , fp)) {
3145
3146
if (!strncmp (line, " ENDATA" , 6 ))
3146
3147
break ;
3147
3148
nLine++;
@@ -3220,11 +3221,11 @@ int ClpSimplexOther::parametrics(const char *dataFile)
3220
3221
strcpy (saveLine, line);
3221
3222
}
3222
3223
}
3223
- sprintf (line, " %d Column fields and %d records" , nAcross, nLine);
3224
+ snprintf (line, sizeof (line) , " %d Column fields and %d records" , nAcross, nLine);
3224
3225
handler_->message (CLP_GENERAL, messages_)
3225
3226
<< line << CoinMessageEol;
3226
3227
if (nBadName) {
3227
- sprintf (line, " ** %d records did not match on name/sequence, first bad %s" , nBadName, saveLine);
3228
+ snprintf (line, sizeof (line) , " ** %d records did not match on name/sequence, first bad %s" , nBadName, saveLine);
3228
3229
handler_->message (CLP_GENERAL, messages_)
3229
3230
<< line << CoinMessageEol;
3230
3231
returnCode = -1 ;
@@ -3235,7 +3236,7 @@ int ClpSimplexOther::parametrics(const char *dataFile)
3235
3236
}
3236
3237
delete[] columnNames;
3237
3238
} else {
3238
- sprintf (line, " Duplicate or unknown keyword - or name/number fields wrong" );
3239
+ snprintf (line, sizeof (line) , " Duplicate or unknown keyword - or name/number fields wrong" );
3239
3240
handler_->message (CLP_GENERAL, messages_)
3240
3241
<< line << CoinMessageEol;
3241
3242
returnCode = -1 ;
@@ -3791,7 +3792,7 @@ int ClpSimplexOther::parametrics(double startingTheta, double &endingTheta,
3791
3792
delete rowArray_[5 ];
3792
3793
rowArray_[5 ] = NULL ;
3793
3794
char line[100 ];
3794
- sprintf (line, " Ending theta %g\n " , endingTheta);
3795
+ snprintf (line, sizeof (line) , " Ending theta %g\n " , endingTheta);
3795
3796
handler_->message (CLP_GENERAL, messages_)
3796
3797
<< line << CoinMessageEol;
3797
3798
return problemStatus_;
@@ -6444,7 +6445,7 @@ ClpSimplexOther::gubVersion(int *whichRows, int *whichColumns,
6444
6445
}
6445
6446
}
6446
6447
if (!numberNormal) {
6447
- sprintf (message, " Putting back one gub row to make non-empty" );
6448
+ snprintf (message, sizeof (message) , " Putting back one gub row to make non-empty" );
6448
6449
handler_->message (CLP_GENERAL2, messages_)
6449
6450
<< message << CoinMessageEol;
6450
6451
rowIsGub[smallestGubRow] = -1 ;
@@ -6658,7 +6659,7 @@ ClpSimplexOther::gubVersion(int *whichRows, int *whichColumns,
6658
6659
}
6659
6660
}
6660
6661
}
6661
- sprintf (message, " ** Before adding matrix there are %d rows and %d columns" ,
6662
+ snprintf (message, sizeof (message) , " ** Before adding matrix there are %d rows and %d columns" ,
6662
6663
model2->numberRows (), model2->numberColumns ());
6663
6664
handler_->message (CLP_GENERAL2, messages_)
6664
6665
<< message << CoinMessageEol;
0 commit comments