From: John Darrington Date: Sat, 2 Mar 2013 12:58:19 +0000 (+0100) Subject: Fixed some memory allocation issues X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2fd4409fd71e1ae0c3447b64ea12520e2d9e652a;p=pspp Fixed some memory allocation issues --- diff --git a/src/data/ods-reader.c b/src/data/ods-reader.c index 2b830fa2e6..fe9b90049b 100644 --- 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->row = 0; + r->col = 0; + r->current_sheet = 0; + r->state = STATE_INIT; 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, - (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; @@ -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)); + 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; }