<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:34:18 UTC 2024

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 append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-3483] Null pointer dereference in ll_revalidate_nd (llite/dcache.c) in an NFS mounted Lustre file system</title>
                <link>https://jira.whamcloud.com/browse/LU-3483</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;We encountered this issue when trying to use an NFS mounted Lustre file system on SLES11SP2.  This issue only occurs with a client kernel version &amp;gt;= 2.6.38, so it does not affect SLES11SP1 or Cent OS 6.4.&lt;/p&gt;

&lt;p&gt;In calls to ll_revalidate_nd, the nameidata pointer nd is sometimes null.  The core code of the function tests for this case and handles it by calling ll_node_revalidate_it.&lt;/p&gt;

&lt;p&gt;However, immediately before that code, there is a test to see if the LOOKUP_RCU flag is set in nd-&amp;gt;flags.  This test does NOT check to see if the nd pointer is null.  Per the comment, LOOKUP_RCU was added in kernel 2.6.38, and and this code is #ifdefed accordingly.&lt;/p&gt;

&lt;p&gt;The fix is to test if nd is null in the LOOKUP_RCU check.&lt;/p&gt;

&lt;p&gt;Here&apos;s the revelant code:&lt;br/&gt;
&amp;#8212;&lt;br/&gt;
int ll_revalidate_nd(struct dentry *dentry, struct nameidata *nd)&lt;br/&gt;
{&lt;br/&gt;
        int rc;&lt;br/&gt;
        ENTRY;&lt;/p&gt;

&lt;p&gt;#ifndef HAVE_DCACHE_LOCK&lt;br/&gt;
        /* kernel &amp;gt;= 2.6.38 supports rcu-walk, but lustre doesn&apos;t. */&lt;br/&gt;
        if (nd-&amp;gt;flags &amp;amp; LOOKUP_RCU)&lt;br/&gt;
                return -ECHILD;&lt;br/&gt;
#endif&lt;/p&gt;

&lt;p&gt;        if (nd &amp;amp;&amp;amp; !(nd-&amp;gt;flags &amp;amp; (LOOKUP_CONTINUE|LOOKUP_PARENT))) {&lt;br/&gt;
&amp;#8212;&lt;/p&gt;

&lt;p&gt;So the fix is just:&lt;br/&gt;
if (nd &amp;amp;&amp;amp; nd-&amp;gt;flags &amp;amp; LOOKUP_RCU)&lt;/p&gt;

&lt;p&gt;This issue is found in 2.2,2.3,2.4, and master, but as noted, only occurs with kernel versions greater than 2.6.38.  It is NOT in 2.1, which doesn&apos;t appear to have any awareness of LOOKUP_RCU.&lt;/p&gt;

&lt;p&gt;I will be committing the Gerrit patch shortly.&lt;/p&gt;</description>
                <environment>Lustre client &amp;gt;= 2.2, kernel version &amp;gt;= 2.6.38</environment>
        <key id="19476">LU-3483</key>
            <summary>Null pointer dereference in ll_revalidate_nd (llite/dcache.c) in an NFS mounted Lustre file system</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.whamcloud.com/images/icons/priorities/blocker.svg">Blocker</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="keith">Keith Mannthey</assignee>
                                    <reporter username="paf">Patrick Farrell</reporter>
                        <labels>
                            <label>patch</label>
                    </labels>
                <created>Wed, 19 Jun 2013 17:49:37 +0000</created>
                <updated>Wed, 10 Jul 2013 19:05:19 +0000</updated>
                            <resolved>Wed, 10 Jul 2013 19:05:19 +0000</resolved>
                                                    <fixVersion>Lustre 2.5.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>10</watches>
                                                                            <comments>
                            <comment id="60881" author="paf" created="Wed, 19 Jun 2013 18:05:18 +0000"  >&lt;p&gt;I&apos;m not currently able to commit the patch to Gerrit:&lt;br/&gt;
git push ssh://paf@review.whamcloud.com:29418/fs/lustre-release HEAD:refs/for/master&lt;br/&gt;
Permission denied (publickey).&lt;br/&gt;
fatal: The remote end hung up unexpectedly&lt;/p&gt;</comment>
                            <comment id="60904" author="laisiyao" created="Thu, 20 Jun 2013 06:36:29 +0000"  >&lt;p&gt;Can you upload your patch here? I can help commit it.&lt;/p&gt;</comment>
                            <comment id="60909" author="pjones" created="Thu, 20 Jun 2013 11:47:11 +0000"  >&lt;p&gt;I believe that Patrick&apos;s issues with gerrit were resolved on the hpdd-discuss mailing list and so he should be ok to upload his patch into gerrit now&lt;/p&gt;</comment>
                            <comment id="60914" author="paf" created="Thu, 20 Jun 2013 14:13:58 +0000"  >&lt;p&gt;Peter&apos;s right, and here&apos;s the patch:&lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#/c/6715/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/6715/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="62049" author="jlevi" created="Wed, 10 Jul 2013 19:05:19 +0000"  >&lt;p&gt;Patch has landed to Master so closing this ticket. If more work is needed under this ticket please let me know and I will reopen&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzvtmn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8745</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

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