Commit 47c786e7 authored by Steve French's avatar Steve French

[CIFS] Add null malloc response check in notify experimental code

Signed-off-by: Steve French (sfrench@us.ibm.com)
parent 1047abc1
...@@ -217,7 +217,7 @@ cifs_stats_write(struct file *file, const char __user *buffer, ...@@ -217,7 +217,7 @@ cifs_stats_write(struct file *file, const char __user *buffer,
if (rc) if (rc)
return rc; return rc;
if (c == '1' || c == 'y' || c == 'Y') { if (c == '1' || c == 'y' || c == 'Y' || c == '0') {
read_lock(&GlobalSMBSeslock); read_lock(&GlobalSMBSeslock);
list_for_each(tmp, &GlobalTreeConnectionList) { list_for_each(tmp, &GlobalTreeConnectionList) {
tcon = list_entry(tmp, struct cifsTconInfo, tcon = list_entry(tmp, struct cifsTconInfo,
......
...@@ -4294,20 +4294,26 @@ int CIFSSMBNotify(const int xid, struct cifsTconInfo *tcon, ...@@ -4294,20 +4294,26 @@ int CIFSSMBNotify(const int xid, struct cifsTconInfo *tcon,
cFYI(1, ("Error in Notify = %d", rc)); cFYI(1, ("Error in Notify = %d", rc));
} else { } else {
/* Add file to outstanding requests */ /* Add file to outstanding requests */
/* BB change to kmem cache alloc */
dnotify_req = (struct dir_notify_req *) kmalloc( dnotify_req = (struct dir_notify_req *) kmalloc(
sizeof(struct dir_notify_req), GFP_KERNEL); sizeof(struct dir_notify_req),
dnotify_req->Pid = pSMB->hdr.Pid; GFP_KERNEL);
dnotify_req->PidHigh = pSMB->hdr.PidHigh; if(dnotify_req) {
dnotify_req->Mid = pSMB->hdr.Mid; dnotify_req->Pid = pSMB->hdr.Pid;
dnotify_req->Tid = pSMB->hdr.Tid; dnotify_req->PidHigh = pSMB->hdr.PidHigh;
dnotify_req->Uid = pSMB->hdr.Uid; dnotify_req->Mid = pSMB->hdr.Mid;
dnotify_req->netfid = netfid; dnotify_req->Tid = pSMB->hdr.Tid;
dnotify_req->pfile = pfile; dnotify_req->Uid = pSMB->hdr.Uid;
dnotify_req->filter = filter; dnotify_req->netfid = netfid;
dnotify_req->multishot = multishot; dnotify_req->pfile = pfile;
spin_lock(&GlobalMid_Lock); dnotify_req->filter = filter;
list_add_tail(&dnotify_req->lhead, &GlobalDnotifyReqList); dnotify_req->multishot = multishot;
spin_unlock(&GlobalMid_Lock); spin_lock(&GlobalMid_Lock);
list_add_tail(&dnotify_req->lhead,
&GlobalDnotifyReqList);
spin_unlock(&GlobalMid_Lock);
} else
rc = -ENOMEM;
} }
cifs_buf_release(pSMB); cifs_buf_release(pSMB);
return rc; return rc;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment