projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pivot table procedure conceptually works
[pspp]
/
utilities
/
pspp-dump-sav.c
diff --git
a/utilities/pspp-dump-sav.c
b/utilities/pspp-dump-sav.c
index e58bc254ec1d1f7696a4099ae8d679bb8229b2e0..c194f230500fbdf7c5c52d7a6778651e8f412ae6 100644
(file)
--- a/
utilities/pspp-dump-sav.c
+++ b/
utilities/pspp-dump-sav.c
@@
-444,18
+444,16
@@
read_variable_record (struct sfm_reader *r)
if (has_variable_label == 1)
{
long long int offset = ftello (r->file);
if (has_variable_label == 1)
{
long long int offset = ftello (r->file);
- size_t len
, read_len
;
- char
label[255 + 1]
;
+ size_t len;
+ char
*label
;
len = read_int (r);
/* Read up to 255 bytes of label. */
len = read_int (r);
/* Read up to 255 bytes of label. */
-
read_len = MIN (sizeof label - 1, len
);
- read_string (r, label,
read_
len + 1);
+
label = xmalloc (len + 1
);
+ read_string (r, label, len + 1);
printf("\t%08llx Variable label: \"%s\"\n", offset, label);
printf("\t%08llx Variable label: \"%s\"\n", offset, label);
-
- /* Skip unread label bytes. */
- skip_bytes (r, len - read_len);
+ free (label);
/* Skip label padding up to multiple of 4 bytes. */
skip_bytes (r, ROUND_UP (len, 4) - len);
/* Skip label padding up to multiple of 4 bytes. */
skip_bytes (r, ROUND_UP (len, 4) - len);