mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Luca Tettamanti <kronos.it@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: linux-cifs-client@lists.samba.org
Subject: Re: [2.6.30-rc6] cifs_close: NULL pointer dereference
Date: Sat, 16 May 2009 22:55:58 +0200	[thread overview]
Message-ID: <20090516205558.GA20346@nb-core2.darkstar.lan> (raw)
In-Reply-To: <20090516162813.GA18098@nb-core2.darkstar.lan>

On Sat, May 16, 2009 at 06:28:13PM +0200, Luca Tettamanti wrote:
> Hello,
> I just hit a NULL pointer dereference in cifs_close while accessing a file on a
> remote Samba shared directory.
[...]
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
> IP: [<ffffffffa05f105c>] cifs_close+0x1c1/0x2e8 [cifs]

Ok, I've reproduced this on a machine with a serial port :)

0xffffffff803574e0 in list_del (entry=0xffff8800ac184210)
at /home/kronos/src/linux-2.6.git/lib/list_debug.c:46
46              WARN(entry->prev->next != entry,
(gdb) bt
#0  0xffffffff803574e0 in list_del (entry=0xffff8800ac184210)
    at /home/kronos/src/linux-2.6.git/lib/list_debug.c:46
#1  0xffffffff80319588 in cifs_close (inode=0xffff8800b8d5f088, file=0xffff8800ad8f6d00)
    at /home/kronos/src/linux-2.6.git/fs/cifs/file.c:670
#2  0xffffffff8029d95e in __fput (file=0xffff8800ad8f6d00)
    at /home/kronos/src/linux-2.6.git/fs/file_table.c:281
#3  0xffffffff8029da32 in fput (file=0xffff8800ac184210)
    at /home/kronos/src/linux-2.6.git/fs/file_table.c:227
#4  0xffffffff8029ad30 in filp_close (filp=0xffff8800ad8f6d00, id=0xffff880037a3e080)
    at /home/kronos/src/linux-2.6.git/fs/open.c:1108
#5  0xffffffff8029ade0 in sys_close (fd=0) 
    at /home/kronos/src/linux-2.6.git/fs/open.c:1137
#6  0xffffffff802271e4 in sysenter_dispatch ()
    at /home/kronos/src/linux-2.6.git/arch/x86/ia32/ia32entry.S:161
#7  0x0000000000000000 in ?? ()

(gdb) f 1
#1  0xffffffff80319588 in cifs_close (inode=0xffff8800b8d5f088, file=0xffff8800ad8f6d00)
    at /home/kronos/src/linux-2.6.git/fs/cifs/file.c:670
670                     list_del(&pSMBFile->flist);

(gdb) p *&pSMBFile->flist
$2 = {next = 0x0, prev = 0x0}

(gdb) p *&pSMBFile->tlist
$5 = {next = 0x0, prev = 0x0}

So both flist and tlist were not initilized in cifs_open.

The content of the whole pSMBFile structure:

(gdb) p *pSMBFile
$6 = {tlist = {next = 0x0, prev = 0x0}, flist = {next = 0x0, prev = 0x0}, uid = 0, pid = 5322, netfid = 13880,
  pfile = 0xffff8800ad8f6d00, pInode = 0xffff8800b8d5f088, lock_mutex = {count = {counter = 1}, wait_lock = {raw_lock = {
        slock = 514}, magic = 3735899821, owner_cpu = 4294967295, owner = 0xffffffffffffffff, dep_map = {
        key = 0xffffffff806a5c98, class_cache = 0x0, name = 0xffffffff80537308 "&lock->wait_lock"}}, wait_list = {
      next = 0xffff8800ac184278, prev = 0xffff8800ac184278}, owner = 0x0, name = 0x0, magic = 0xffff8800ac184240, dep_map = {
      key = 0xffffffff80d7ff50, class_cache = 0xffffffff80835400, name = 0xffffffff8054cdfa "&private_data->lock_mutex"}},
  llist = {next = 0xffff8800ac1842b8, prev = 0xffff8800ac1842b8}, closePend = true, invalidHandle = false,
  messageMode = false, wrtPending = {counter = 0}, fh_mutex = {count = {counter = 1}, wait_lock = {raw_lock = {slock = 0},
      magic = 3735899821, owner_cpu = 4294967295, owner = 0xffffffffffffffff, dep_map = {key = 0xffffffff806a5c98,
        class_cache = 0x0, name = 0xffffffff80537308 "&lock->wait_lock"}}, wait_list = {next = 0xffff8800ac184308,
      prev = 0xffff8800ac184308}, owner = 0x0, name = 0x0, magic = 0xffff8800ac1842d0, dep_map = {key = 0xffffffff80d7ff58,
      class_cache = 0x0, name = 0xffffffff8054cde2 "&private_data->fh_mutex"}}, srch_inf = {index_of_last_entry = 0,
    entries_in_buffer = 0, info_level = 0, resume_key = 0, ntwrk_buf_start = 0x0, srch_entries_start = 0x0, last_entry = 0x0,
    presume_name = 0x0, resume_name_len = 0, endOfSearch = false, emptyDir = false, unicode = false, smallBuf = false}}


Luca

  reply	other threads:[~2009-05-16 20:56 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-16 16:28 Luca Tettamanti
2009-05-16 20:55 ` Luca Tettamanti [this message]
2009-05-17  2:13   ` [linux-cifs-client] " Jeff Layton
2009-05-17  2:16     ` Jeff Layton
2009-05-17  6:24     ` Steve French
2009-05-17 14:40     ` Shirish Pargaonkar
2009-05-17 14:58       ` Jeff Layton
2009-05-17 17:10       ` Luca Tettamanti

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090516205558.GA20346@nb-core2.darkstar.lan \
    --to=kronos.it@gmail.com \
    --cc=linux-cifs-client@lists.samba.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®