[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pspp-cvs] Changes to pspp/src/crosstabs.q
From: |
Ben Pfaff |
Subject: |
[Pspp-cvs] Changes to pspp/src/crosstabs.q |
Date: |
Sun, 23 Oct 2005 22:51:40 -0400 |
Index: pspp/src/crosstabs.q
diff -u pspp/src/crosstabs.q:1.26 pspp/src/crosstabs.q:1.27
--- pspp/src/crosstabs.q:1.26 Sun Aug 7 04:39:28 2005
+++ pspp/src/crosstabs.q Mon Oct 24 02:51:32 2005
@@ -302,8 +302,8 @@
struct var_set *var_set;
int n_by;
struct variable ***by = NULL;
- int *by_nvar = NULL;
- int nx = 1;
+ size_t *by_nvar = NULL;
+ size_t nx = 1;
int success = 0;
/* Ensure that this is a TABLES subcommand. */
@@ -326,12 +326,17 @@
if (!parse_var_set_vars (var_set, &by[n_by], &by_nvar[n_by],
PV_NO_DUPLICATE | PV_NO_SCRATCH))
goto done;
+ if (xalloc_oversized (nx, by_nvar[n_by]))
+ {
+ msg (SE, _("Too many crosstabulation variables or dimensions."));
+ goto done;
+ }
nx *= by_nvar[n_by];
n_by++;
if (!lex_match (T_BY))
{
- if (n_by < 1)
+ if (n_by < 2)
{
lex_error (_("expecting BY"));
goto done;
@@ -345,7 +350,7 @@
int *by_iter = xcalloc (n_by, sizeof *by_iter);
int i;
- xtab = xrealloc (xtab, sizeof *xtab * (nxtab + nx));
+ xtab = xnrealloc (xtab, sizeof *xtab, nxtab + nx);
for (i = 0; i < nx; i++)
{
struct crosstab *x;
@@ -408,8 +413,8 @@
for (;;)
{
- int orig_nv = variables_cnt;
- int i;
+ size_t orig_nv = variables_cnt;
+ size_t i;
long min, max;
- [Pspp-cvs] Changes to pspp/src/crosstabs.q,
Ben Pfaff <=