projects
/
pspp
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
8af115a
)
Fixed some memory allocation issues
author
John Darrington
<john@darrington.wattle.id.au>
Sat, 2 Mar 2013 12:58:19 +0000
(13:58 +0100)
committer
John Darrington
<john@darrington.wattle.id.au>
Sat, 2 Mar 2013 12:58:19 +0000
(13:58 +0100)
src/data/ods-reader.c
patch
|
blob
|
history
diff --git
a/src/data/ods-reader.c
b/src/data/ods-reader.c
index 2b830fa2e6a8bf066d6ce1a0c7c1091aa06b96cb..fe9b90049b262f98dcb6de7931ef7e8217a0fcf0 100644
(file)
--- a/
src/data/ods-reader.c
+++ b/
src/data/ods-reader.c
@@
-534,6
+534,10
@@
init_reader (struct ods_reader *r, bool report_errors)
r->xtr = xtr;
r->spreadsheet.type = SPREADSHEET_ODS;
r->xtr = xtr;
r->spreadsheet.type = SPREADSHEET_ODS;
+ r->row = 0;
+ r->col = 0;
+ r->current_sheet = 0;
+ r->state = STATE_INIT;
if (report_errors)
xmlTextReaderSetErrorHandler (xtr, ods_error_handler, r);
if (report_errors)
xmlTextReaderSetErrorHandler (xtr, ods_error_handler, r);
@@
-693,7
+697,7
@@
ods_make_reader (struct spreadsheet *spreadsheet,
/* xrealloc (unlike realloc) doesn't initialise its memory to 0 */
memset (var_spec + n_var_specs,
0,
/* xrealloc (unlike realloc) doesn't initialise its memory to 0 */
memset (var_spec + n_var_specs,
0,
- (
n_var_specs - idx
+ 1) * sizeof (*var_spec));
+ (
idx - n_var_specs
+ 1) * sizeof (*var_spec));
n_var_specs = idx + 1;
}
var_spec[idx].firstval.text = 0;
n_var_specs = idx + 1;
}
var_spec[idx].firstval.text = 0;
@@
-749,6
+753,10
@@
ods_make_reader (struct spreadsheet *spreadsheet,
if (idx >= n_var_specs)
{
var_spec = xrealloc (var_spec, sizeof (*var_spec) * (idx + 1));
if (idx >= n_var_specs)
{
var_spec = xrealloc (var_spec, sizeof (*var_spec) * (idx + 1));
+ memset (var_spec + n_var_specs,
+ 0,
+ (idx - n_var_specs + 1) * sizeof (*var_spec));
+
var_spec [idx].name = NULL;
n_var_specs = idx + 1;
}
var_spec [idx].name = NULL;
n_var_specs = idx + 1;
}