[PATCH] add check for nameidata before accessing it

Shirish Pargaonkar shirishpargaonkar at gmail.com
Thu Nov 19 13:38:59 MST 2009


Cc: Stable <stable at kernel.org>
---
 fs/cifs/dir.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index 627a60a..32771f5 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -643,7 +643,7 @@ cifs_lookup(struct inode *parent_dir_inode, struct
dentry *direntry,
         * O_EXCL: optimize away the lookup, but don't hash the dentry. Let
         * the VFS handle the create.
         */
-       if (nd->flags & LOOKUP_EXCL) {
+       if (nd && (nd->flags & LOOKUP_EXCL)) {
                d_instantiate(direntry, NULL);
                return 0;
        }
@@ -675,7 +675,7 @@ cifs_lookup(struct inode *parent_dir_inode, struct
dentry *direntry,
         * reduction in network traffic in the other paths.
         */
        if (pTcon->unix_ext) {
-               if (!(nd->flags & (LOOKUP_PARENT | LOOKUP_DIRECTORY)) &&
+               if (nd && !(nd->flags & (LOOKUP_PARENT | LOOKUP_DIRECTORY)) &&
                     (nd->flags & LOOKUP_OPEN) && !pTcon->broken_posix_open &&
                     (nd->intent.open.flags & O_CREAT)) {
                        rc = cifs_posix_open(full_path, &newInode, nd->path.mnt,
--
1.6.0.2

--001636b2ac6a0521fd0478bfb996
Content-Type: application/octet-stream; name="cifs.nd.2.patch"
Content-Disposition: attachment; filename="cifs.nd.2.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g280hit00

RnJvbSAyNDBmNzU0MzBkYmU0OTY1Zjc5ZDkwMzMwOTQ4OGViYWJkM2QzNjI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGlyaXNoIFBhcmdhb25rYXIgPHNoaXJpc2hwYXJnYW9ua2Fy
QGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxOSBOb3YgMjAwOSAxNDozODo1OSAtMDYwMApTdWJqZWN0
OiBbUEFUQ0hdIGFkZCBjaGVjayBmb3IgbmFtZWlkYXRhIGJlZm9yZSBhY2Nlc3NpbmcgaXQKCi0t
LQogZnMvY2lmcy9kaXIuYyB8ICAgIDQgKystLQogMSBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlv
bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9kaXIuYyBiL2ZzL2Np
ZnMvZGlyLmMKaW5kZXggNjI3YTYwYS4uMzI3NzFmNSAxMDA2NDQKLS0tIGEvZnMvY2lmcy9kaXIu
YworKysgYi9mcy9jaWZzL2Rpci5jCkBAIC02NDMsNyArNjQzLDcgQEAgY2lmc19sb29rdXAoc3Ry
dWN0IGlub2RlICpwYXJlbnRfZGlyX2lub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkaXJlbnRyeSwKIAkg
KiBPX0VYQ0w6IG9wdGltaXplIGF3YXkgdGhlIGxvb2t1cCwgYnV0IGRvbid0IGhhc2ggdGhlIGRl
bnRyeS4gTGV0CiAJICogdGhlIFZGUyBoYW5kbGUgdGhlIGNyZWF0ZS4KIAkgKi8KLQlpZiAobmQt
PmZsYWdzICYgTE9PS1VQX0VYQ0wpIHsKKwlpZiAobmQgJiYgKG5kLT5mbGFncyAmIExPT0tVUF9F
WENMKSkgewogCQlkX2luc3RhbnRpYXRlKGRpcmVudHJ5LCBOVUxMKTsKIAkJcmV0dXJuIDA7CiAJ
fQpAQCAtNjc1LDcgKzY3NSw3IEBAIGNpZnNfbG9va3VwKHN0cnVjdCBpbm9kZSAqcGFyZW50X2Rp
cl9pbm9kZSwgc3RydWN0IGRlbnRyeSAqZGlyZW50cnksCiAJICogcmVkdWN0aW9uIGluIG5ldHdv
cmsgdHJhZmZpYyBpbiB0aGUgb3RoZXIgcGF0aHMuCiAJICovCiAJaWYgKHBUY29uLT51bml4X2V4
dCkgewotCQlpZiAoIShuZC0+ZmxhZ3MgJiAoTE9PS1VQX1BBUkVOVCB8IExPT0tVUF9ESVJFQ1RP
UlkpKSAmJgorCQlpZiAobmQgJiYgIShuZC0+ZmxhZ3MgJiAoTE9PS1VQX1BBUkVOVCB8IExPT0tV
UF9ESVJFQ1RPUlkpKSAmJgogCQkgICAgIChuZC0+ZmxhZ3MgJiBMT09LVVBfT1BFTikgJiYgIXBU
Y29uLT5icm9rZW5fcG9zaXhfb3BlbiAmJgogCQkgICAgIChuZC0+aW50ZW50Lm9wZW4uZmxhZ3Mg
JiBPX0NSRUFUKSkgewogCQkJcmMgPSBjaWZzX3Bvc2l4X29wZW4oZnVsbF9wYXRoLCAmbmV3SW5v
ZGUsIG5kLT5wYXRoLm1udCwKLS0gCjEuNi4wLjIKCg==
--001636b2ac6a0521fd0478bfb996--


More information about the linux-cifs-client mailing list