From d4e806c460a7656675deacda8a4ad2eafe6eaea9 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Tue, 18 Mar 2014 20:49:35 -0700 Subject: [PATCH] pspp-dump-sav: Dump labels longer than 255 bytes. --- utilities/pspp-dump-sav.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/utilities/pspp-dump-sav.c b/utilities/pspp-dump-sav.c index e58bc254ec..c194f23050 100644 --- 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); - 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. */ - 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); - - /* 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); -- 2.30.2