From: John Darrington Date: Fri, 12 May 2017 15:03:06 +0000 (+0200) Subject: Fixed bug which caused a crash in GET DATA X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5e328ed3392221e6c201a60e6d4e6638fe7f32de;p=pspp Fixed bug which caused a crash in GET DATA --- diff --git a/src/language/data-io/get-data.c b/src/language/data-io/get-data.c index a0608f6dd3..dff449851b 100644 --- a/src/language/data-io/get-data.c +++ b/src/language/data-io/get-data.c @@ -599,7 +599,13 @@ parse_get_txt (struct lexer *lexer, struct dataset *ds) lex_get (lexer); } - name = xstrdup (lex_tokcstr (lexer)); + const char * tstr = lex_tokcstr (lexer); + if (tstr == NULL) + { + lex_error (lexer, NULL); + goto error; + } + name = xstrdup (tstr); if (!lex_force_id (lexer) || !dict_id_is_valid (dict, name, true)) { diff --git a/tests/language/data-io/get-data-txt.at b/tests/language/data-io/get-data-txt.at index 53f5d4fddc..3b45f4c2c0 100644 --- a/tests/language/data-io/get-data-txt.at +++ b/tests/language/data-io/get-data-txt.at @@ -380,3 +380,24 @@ foo,title,last AT_CLEANUP + +AT_SETUP([GET DATA /TYPE=txt another bug]) + +AT_DATA([crash.sps], [dnl +get data /type=txt /file=inline /variables=C f7.2 D f7>2. +begin data. +3 2 +4 2 +5 2 +end data. +]) + +AT_CHECK([pspp -O format=csv crash.sps], [1], [ignore]) + +AT_CLEANUP + + + + + +