projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix buffer overflow which could occur if the matrix reader encounters a badly formed...
[pspp]
/
src
/
language
/
data-io
/
matrix-reader.c
diff --git
a/src/language/data-io/matrix-reader.c
b/src/language/data-io/matrix-reader.c
index 861937d32c7b4da4a81dbbe21331bd270b7fed99..284ec6f9316cf192a98cf0e4bb50b5c1e8d3ede4 100644
(file)
--- a/
src/language/data-io/matrix-reader.c
+++ b/
src/language/data-io/matrix-reader.c
@@
-77,7
+77,6
@@
s_0 ROWTYPE_ VARNAME_ v_0 v_1 v_2
struct matrix_reader
{
struct matrix_reader
{
- const struct dictionary *dict;
const struct variable *varname;
const struct variable *rowtype;
struct casegrouper *grouper;
const struct variable *varname;
const struct variable *rowtype;
struct casegrouper *grouper;
@@
-96,7
+95,6
@@
create_matrix_reader_from_case_reader (const struct dictionary *dict, struct cas
{
struct matrix_reader *mr = xzalloc (sizeof *mr);
{
struct matrix_reader *mr = xzalloc (sizeof *mr);
- mr->dict = dict;
mr->varname = dict_lookup_var (dict, "varname_");
if (mr->varname == NULL)
{
mr->varname = dict_lookup_var (dict, "varname_");
if (mr->varname == NULL)
{
@@
-207,7
+205,7
@@
next_matrix_from_reader (struct matrix_material *mm,
char s[w];
memset (s, 0, w);
const char *name = var_get_name (vars[i]);
char s[w];
memset (s, 0, w);
const char *name = var_get_name (vars[i]);
- str
cpy (s, name
);
+ str
ncpy (s, name, w
);
unsigned long h = hash_bytes (s, w, 0);
table[i] = h;
}
unsigned long h = hash_bytes (s, w, 0);
table[i] = h;
}