--- misc/build/lp_solve_5.5/lp_report.c	2007-01-14 10:31:34.000000000 -0800
+++ misc/build/lp_solve_5.5/lp_report.c	2007-01-14 10:31:34.000000000 -0800
@@ -160,7 +160,7 @@
 {
   int i, k = 0;
 
-  fprintf(output, label);
+  fputs(label, output);
   fprintf(output, "\n");
   for(i = first; i <= last; i++) {
     fprintf(output, " %18g", vector[i]);
@@ -189,7 +189,7 @@
   if(last < 0)
     last = lp->rows;
 
-  fprintf(output, label);
+  fputs(label, output);
   fprintf(output, "\n");
 
   if(first == 0) {
@@ -254,7 +254,7 @@
   if(last < 0)
     last = lp->rows;
 
-  fprintf(output, label);
+  fputs(label, output);
   fprintf(output, "\n");
 
   for(i = first; i <= last; i++) {
--- misc/build/lp_solve_5.5/lp_rlp.h	2007-01-14 10:31:52.000000000 -0800
+++ misc/build/lp_solve_5.5/lp_rlp.h	2007-01-14 10:31:52.000000000 -0800
@@ -615,7 +615,7 @@
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO (void) fwrite( lp_yytext, lp_yyleng, 1, lp_yyout )
+#define ECHO if(fwrite( lp_yytext, lp_yyleng, 1, lp_yyout ) != 1) YY_FATAL_ERROR( "can't write into lp_yytext" )
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
--- misc/build/lp_solve_5.5/shared/commonlib.c	2007-01-14 10:33:14.000000000 -0800
+++ misc/build/lp_solve_5.5/shared/commonlib.c	2007-01-14 10:33:14.000000000 -0800
@@ -715,7 +715,7 @@
 {
   int i, k = 0;
 
-  fprintf(output, label);
+  fputs(label, output);
   fprintf(output, "\n");
   for(i = first; i <= last; i++) {
     fprintf(output, " %5d", myvector[i]);
@@ -734,7 +734,7 @@
 {
   int i, k = 0;
 
-  fprintf(output, label);
+  fputs(label, output);
   fprintf(output, "\n");
   for(i = first; i <= last; i++) {
     if(asRaw)
@@ -756,7 +756,7 @@
 {
   int i, k = 0;
 
-  fprintf(output, label);
+  fputs(label, output);
   fprintf(output, "\n");
   for(i = first; i <= last; i++) {
     fprintf(output, " %18g", myvector[i]);
--- misc/build/lp_solve_5.5/shared/mmio.c	2007-01-14 10:33:14.000000000 -0800
+++ misc/build/lp_solve_5.5/shared/mmio.c	2007-01-14 10:33:14.000000000 -0800
@@ -74,7 +74,11 @@
  
     for (i=0; i<nz; i++)
     {
-        fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]);
+        if(fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3)
+        {
+            fprintf(stderr, "read_unsymmetric_sparse(): could not parse values.\n");
+            return -1;
+        }
         I[i]--;  /* adjust from 1-based to 0-based */
         J[i]--;
     }