projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix up potential overflows in size calculations by replacing
[pspp]
/
src
/
sort-prs.c
diff --git
a/src/sort-prs.c
b/src/sort-prs.c
index 2114d09318e4ca2ba5bd49c1b6db7704449a1402..6ef6a6fa100da0cc2c027f057cb43c806af8728c 100644
(file)
--- a/
src/sort-prs.c
+++ b/
src/sort-prs.c
@@
-47,7
+47,7
@@
static bool is_terminator(int tok, const int *terminators);
*/
struct sort_criteria *
sort_parse_criteria (const struct dictionary *dict,
*/
struct sort_criteria *
sort_parse_criteria (const struct dictionary *dict,
- struct variable ***vars,
in
t *var_cnt,
+ struct variable ***vars,
size_
t *var_cnt,
bool *saw_direction,
const int *terminators
)
bool *saw_direction,
const int *terminators
)
@@
-74,7
+74,7
@@
sort_parse_criteria (const struct dictionary *dict,
do
{
do
{
-
in
t prev_var_cnt = *var_cnt;
+
size_
t prev_var_cnt = *var_cnt;
enum sort_direction direction;
/* Variables. */
enum sort_direction direction;
/* Variables. */
@@
-105,8
+105,8
@@
sort_parse_criteria (const struct dictionary *dict,
else
direction = SRT_ASCEND;
else
direction = SRT_ASCEND;
- criteria->crits = xrealloc (criteria->crits,
-
sizeof *criteria->crits * *var_cnt
);
+ criteria->crits = x
n
realloc (criteria->crits,
+
*var_cnt, sizeof *criteria->crits
);
criteria->crit_cnt = *var_cnt;
for (; prev_var_cnt < criteria->crit_cnt; prev_var_cnt++)
{
criteria->crit_cnt = *var_cnt;
for (; prev_var_cnt < criteria->crit_cnt; prev_var_cnt++)
{