projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert "added a description how to update linux distributions"
[pspp]
/
src
/
language
/
stats
/
t-test-parser.c
diff --git
a/src/language/stats/t-test-parser.c
b/src/language/stats/t-test-parser.c
index bc9de94a4014db42ab3580539d6ed7a22d17d85e..26fc7ba56cb7307fc37c32b226fdbc12550c8cb0 100644
(file)
--- a/
src/language/stats/t-test-parser.c
+++ b/
src/language/stats/t-test-parser.c
@@
-44,10
+44,10
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
/* Variables pertaining to the paired mode */
const struct variable **v1 = NULL;
/* Variables pertaining to the paired mode */
const struct variable **v1 = NULL;
- size_t n_v1;
+ size_t n_v1
= 0
;
const struct variable **v2 = NULL;
const struct variable **v2 = NULL;
- size_t n_v2;
-
+ size_t n_v2
= 0
;
+
size_t n_pairs = 0;
vp *pairs = NULL;
size_t n_pairs = 0;
vp *pairs = NULL;
@@
-94,7
+94,7
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
if (NULL == (gvar = parse_variable (lexer, dict)))
goto parse_failed;
if (NULL == (gvar = parse_variable (lexer, dict)))
goto parse_failed;
-
+
if (lex_match (lexer, T_LPAREN))
{
if (lex_match (lexer, T_LPAREN))
{
@@
-109,7
+109,8
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
cut = false;
}
cut = false;
}
- lex_force_match (lexer, T_RPAREN);
+ if (! lex_force_match (lexer, T_RPAREN))
+ goto parse_failed;
}
else
{
}
else
{
@@
-179,7
+180,7
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
n_pairs = n_v1;
else
n_pairs = n_v1 * n_v2;
n_pairs = n_v1;
else
n_pairs = n_v1 * n_v2;
-
+
pairs = xcalloc (n_pairs, sizeof *pairs);
if ( with)
pairs = xcalloc (n_pairs, sizeof *pairs);
if ( with)
@@
-192,7
+193,7
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
vp *pair = &pairs[i];
(*pair)[0] = v1[i];
(*pair)[1] = v2[i];
vp *pair = &pairs[i];
(*pair)[0] = v1[i];
(*pair)[1] = v2[i];
- }
+ }
}
else
{
}
else
{
@@
-281,10
+282,11
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
goto parse_failed;
tt.confidence = lex_number (lexer);
lex_get (lexer);
goto parse_failed;
tt.confidence = lex_number (lexer);
lex_get (lexer);
- lex_force_match (lexer, T_RPAREN);
+ if (! lex_force_match (lexer, T_RPAREN))
+ goto parse_failed;
}
}
}
}
- else
+ else
{
lex_error (lexer, NULL);
goto parse_failed;
{
lex_error (lexer, NULL);
goto parse_failed;
@@
-365,12
+367,17
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
free (pairs);
free (v1);
free (v2);
free (pairs);
free (v1);
free (v2);
-
free (tt.vars);
return ok ? CMD_SUCCESS : CMD_FAILURE;
parse_failed:
free (tt.vars);
return ok ? CMD_SUCCESS : CMD_FAILURE;
parse_failed:
+
+ free (pairs);
+ free (v1);
+ free (v2);
+ free (tt.vars);
+
return CMD_FAILURE;
}
return CMD_FAILURE;
}