quetz-mod_python-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anders Blomdell (JIRA)" <j...@apache.org>
Subject [jira] Updated: (MODPYTHON-256) util.FieldStorage __setitem__/__delitem__ might affect wrong field
Date Tue, 02 Mar 2010 08:29:27 GMT

     [ https://issues.apache.org/jira/browse/MODPYTHON-256?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Anders Blomdell updated MODPYTHON-256:
--------------------------------------

    Attachment: modpython.patch

Add new method to delete a named field from FieldList and use it in __setitem__/__delitem__

> util.FieldStorage __setitem__/__delitem__ might affect wrong field
> ------------------------------------------------------------------
>
>                 Key: MODPYTHON-256
>                 URL: https://issues.apache.org/jira/browse/MODPYTHON-256
>             Project: mod_python
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.3.1
>         Environment: Any
>            Reporter: Anders Blomdell
>         Attachments: modpython.patch
>
>
> When a FieldStorage has two (or more) Filed instances with the same value but
> different names, the behaviour of programs like this is (more or less) undefined:
>   fs = util.FieldStorage(req)
>   fs['id1'] = 'New value'
>   del fs['id2']
> The reason for the undefinedness, is this code in __delitem__ (and the similar
> in __setitem__):
>         table = self.list.table()
>         values = table[key]
>         for value in values:
>             self.list.remove(value)
> What happens is that the self.list.remove(value) will remove the first field
> with a matching value, regardless of that fields name. Here is an example from
> real life:
>     form.clear()
>     form['id1'] = 'x'
>     form['id2'] = 'x'
>     form['id3'] = 'x'
>     # Form now contains {'id2': [Field('id2', 'x')],
>     #                    'id3': [Field('id3', 'x')],
>     #                    'id1': [Field('id1', 'x')]}
>     form['id2'] = 'y'
>     # Form now contains {'id2': [Field('id2', 'x'), Field('id2', 'y')],
>     #                    'id3': [Field('id3', 'x')]}
>     # which is not what I would have expected

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message