<!-- 
RSS generated by JIRA (4.4#649-r158309) at Mon May 20 10:18:01 CDT 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://dev.clojure.org/jira/si/jira.issueviews:issue-xml/CLJ-904/CLJ-904.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Clojure JIRA</title>
    <link>http://dev.clojure.org/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>4.4</version>
        <build-number>649</build-number>
        <build-date>25-07-2011</build-date>
    </build-info>

<item>
            <title>[CLJ-904] Document *read-eval* in read, read-string</title>
                <link>http://dev.clojure.org/jira/browse/CLJ-904</link>
                <project id="10010" key="CLJ">Clojure</project>
                        <description>&lt;p&gt;Even though the #=() reader syntax is &quot;unofficial&quot;, &amp;#42;read-eval&amp;#42; should be documented in the appropriate API functions &amp;#8211; this is a serious security problem for anyone accepting serialized Clojure data structures. E.g., a system service reading a config file, a server accepting an API request.&lt;/p&gt;</description>
                <environment></environment>
            <key id="15091">CLJ-904</key>
            <summary>Document *read-eval* in read, read-string</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="5" iconUrl="http://dev.clojure.org/jira/images/icons/priority_trivial.gif">Trivial</priority>
                    <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="timmc">Tim McCormack</reporter>
                        <labels>
                    </labels>
                <created>Sat, 31 Dec 2011 09:39:50 -0600</created>
                <updated>Fri, 22 Feb 2013 09:02:45 -0600</updated>
                    <resolved>Fri, 15 Feb 2013 11:00:12 -0600</resolved>
                            <version>Release 1.1</version>
                <version>Release 1.2</version>
                <version>Release 1.3</version>
                <version>Release 1.4</version>
                                                        <due></due>
                    <votes>6</votes>
                        <watches>5</watches>
                        <comments>
                    <comment id="29936" author="timmc" created="Tue, 13 Nov 2012 18:49:33 -0600"  >&lt;p&gt;My goodness, I entirely neglected to attach a patch for this! Well, here it is, short and sweet.&lt;/p&gt;</comment>
                    <comment id="29946" author="jafingerhut" created="Wed, 14 Nov 2012 14:34:34 -0600"  >&lt;p&gt;Tim, I&apos;m pretty sure that read-line&apos;s behavior is safe regardless of the value of &lt;b&gt;read-eval&lt;/b&gt;.  It only reads characters from the stream without interpretation or evaluation, and returns them as a string.  If so, adding the warning to read-line&apos;s doc string seems wrong.&lt;/p&gt;</comment>
                    <comment id="29952" author="timmc" created="Wed, 14 Nov 2012 22:06:04 -0600"  >&lt;p&gt;Oops! Replaced the patch.&lt;/p&gt;</comment>
                    <comment id="30071" author="redinger" created="Tue, 27 Nov 2012 17:36:23 -0600"  >&lt;p&gt;Patch applies cleanly and adds a useful message.&lt;/p&gt;</comment>
                    <comment id="30512" author="steveminer@gmail.com" created="Wed, 30 Jan 2013 10:15:10 -0600"  >&lt;p&gt;See also discussion on the mailing list:  &lt;br/&gt;
&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/clojure/qUk-bM0JSGc&quot;&gt;https://groups.google.com/forum/?fromgroups=#!topic/clojure/qUk-bM0JSGc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Several people who care about safety think that &amp;#42;read-eval* should be false by default.  Documentation does not make up for a security hole.&lt;/p&gt;</comment>
                    <comment id="30513" author="steveminer@gmail.com" created="Wed, 30 Jan 2013 10:44:00 -0600"  >&lt;p&gt;It would be useful to document the interaction between &amp;#42;print-dup* and &amp;#42;read-eval* as well.  In most cases, if you use &amp;#42;print-dup* true to preserve exact types, you&apos;ll want to bind &amp;#42;read-eval* true to read them.  Code that depends on their default values is brittle.&lt;/p&gt;</comment>
                    <comment id="30514" author="jafingerhut" created="Wed, 30 Jan 2013 10:52:24 -0600"  >&lt;p&gt;See also the newer ticket &lt;a href=&quot;http://dev.clojure.org/jira/browse/CLJ-1153&quot; title=&quot;Change *read-eval* default value to false&quot;&gt;&lt;del&gt;CLJ-1153&lt;/del&gt;&lt;/a&gt;, which has a patch to change &lt;b&gt;read-eval&lt;/b&gt; default value to false.&lt;/p&gt;</comment>
                    <comment id="30560" author="jafingerhut" created="Wed, 6 Feb 2013 12:38:19 -0600"  >&lt;p&gt;With the recent changes Rich has done to add read-edn and read-edn-string, he has also updated the doc strings of read and read-string to call out the potential security dangers, emphasize that they are intended for use only in reading code and/or data from trusted sources, and to point to the safer read-edn and read-edn-string for data interchange purposes.&lt;/p&gt;

&lt;p&gt;The purpose of this ticket seems to be satisfied with those commits.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="11679" name="0002-CLJ-904-Note-about-read-eval-on-docstrings-for-reade.patch" size="1097" author="timmc" created="Wed, 14 Nov 2012 22:06:04 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10003">Vetted</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Patch</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10001">Code</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                        </customfields>
    </item>
</channel>
</rss>