MISSING VALUES: Fix free of indeterminate pointer.
authorBen Pfaff <blp@gnu.org>
Thu, 11 Feb 2010 04:22:42 +0000 (20:22 -0800)
committerBen Pfaff <blp@gnu.org>
Sat, 20 Feb 2010 01:16:13 +0000 (17:16 -0800)
If the main "while" loop in this function falls through immediately without
ever executing its body, then 'v' is passed to free() without ever being
initialized.

Found by Clang (http://clang-analyzer.llvm.org).

src/language/dictionary/missing-values.c

index 819b0a9021cfe5821b4060e02b9932830b2a6120..22fe4436f0500e9f93b54b97ae48962c2a2663db 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000, 2006, 2009 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2006, 2009, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -38,7 +38,7 @@
 int
 cmd_missing_values (struct lexer *lexer, struct dataset *ds)
 {
-  struct variable **v;
+  struct variable **v = NULL;
   size_t nv;
 
   int retval = CMD_FAILURE;