From 389b447a91e26f255e79c4fd8520d99931809ed0 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Sat, 9 May 2009 08:43:35 +0800 Subject: [PATCH] Ensure that NUMERIC's format (if any) is a valid output format. Thanks to Pascal Barbedor for reporting this problem. --- src/language/dictionary/numeric.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/language/dictionary/numeric.c b/src/language/dictionary/numeric.c index 5c64b948..5fa77541 100644 --- a/src/language/dictionary/numeric.c +++ b/src/language/dictionary/numeric.c @@ -43,12 +43,12 @@ cmd_numeric (struct lexer *lexer, struct dataset *ds) char **v; size_t nv; - /* Format spec for variables to create. f.type==-1 if default is to - be used. */ - struct fmt_spec f; - do { + /* Format spec for variables to create. f.type==-1 if default is to + be used. */ + struct fmt_spec f; + if (!parse_DATA_LIST_vars (lexer, &v, &nv, PV_NONE)) return CMD_FAILURE; @@ -57,6 +57,10 @@ cmd_numeric (struct lexer *lexer, struct dataset *ds) { if (!parse_format_specifier (lexer, &f)) goto fail; + + if ( ! fmt_check_output (&f)) + goto fail; + if (fmt_is_string (f.type)) { char str[FMT_STRING_LEN_MAX + 1]; -- 2.30.2