diff options
author | Jan Cholasta <jcholast@redhat.com> | 2013-01-08 16:32:41 +0100 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2013-02-08 15:16:37 +0100 |
commit | 1d35043e466dfca22cdaf463b6623c10a9ff2d39 (patch) | |
tree | 2b6e9a66c0e8b6db589d1a706e3de079566b9b1e /ipalib/parameters.py | |
parent | cbb262dc07ea0615068a630e6c7136e3200d5a06 (diff) | |
download | freeipa-1d35043e466dfca22cdaf463b6623c10a9ff2d39.tar.gz freeipa-1d35043e466dfca22cdaf463b6623c10a9ff2d39.tar.xz freeipa-1d35043e466dfca22cdaf463b6623c10a9ff2d39.zip |
Raise ValidationError on invalid CSV values.
https://fedorahosted.org/freeipa/ticket/3323
Diffstat (limited to 'ipalib/parameters.py')
-rw-r--r-- | ipalib/parameters.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/ipalib/parameters.py b/ipalib/parameters.py index 502f173c9..2e26923dd 100644 --- a/ipalib/parameters.py +++ b/ipalib/parameters.py @@ -694,9 +694,16 @@ class Param(ReadOnly): delimiter=self.csv_separator, quotechar='"', skipinitialspace=self.csv_skipspace, **kwargs) - for row in csv_reader: - # decode UTF-8 back to Unicode, cell by cell: - yield [unicode(cell, 'utf-8') for cell in row] + try: + for row in csv_reader: + # decode UTF-8 back to Unicode, cell by cell: + yield [unicode(cell, 'utf-8') for cell in row] + except csv.Error, e: + raise ValidationError( + name=self.get_param_name(), + value=unicode_csv_data, + error=_("Improperly formatted CSV value (%s)" % e) + ) def split_csv(self, value): """Split CSV strings into individual values. |