lex_get_text_buffer_read: Avoid potential buffer overflow.
[pspp] / src / language / stats / regression.q
index 5ca581d8e14c7301ed4ff79b5df5c15bf3105ab5..4ef12c98479ec2aac3b0711aaedef9a7410899c5 100644 (file)
@@ -25,9 +25,9 @@
 #include "data/case.h"
 #include "data/casegrouper.h"
 #include "data/casereader.h"
+#include "data/dataset.h"
 #include "data/dictionary.h"
 #include "data/missing-values.h"
-#include "data/procedure.h"
 #include "data/transformations.h"
 #include "data/value-labels.h"
 #include "data/variable.h"
@@ -792,6 +792,7 @@ identify_indep_vars (const struct variable **indep_vars,
     }
   return n_indep_vars;
 }
+
 static double
 fill_covariance (gsl_matrix *cov, struct covariance *all_cov, 
                 const struct variable **vars,
@@ -804,12 +805,15 @@ fill_covariance (gsl_matrix *cov, struct covariance *all_cov,
   size_t dep_subscript;
   size_t *rows;
   const gsl_matrix *ssizes;
-  gsl_matrix *cm;
   const gsl_matrix *mean_matrix;
   const gsl_matrix *ssize_matrix;
   double result = 0.0;
   
-  cm = covariance_calculate_unnormalized (all_cov);
+  gsl_matrix *cm = covariance_calculate_unnormalized (all_cov);
+
+  if ( cm == NULL)
+    return 0;
+
   rows = xnmalloc (cov->size1 - 1, sizeof (*rows));
   
   for (i = 0; i < n_all_vars; i++)