linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: bugzilla-daemon@bugzilla.kernel.org
To: linux-scsi@vger.kernel.org
Subject: [Bug 34422] New: Error-valued pointers used in pointer arithmetic in SCSI
Date: Wed, 4 May 2011 14:22:58 GMT	[thread overview]
Message-ID: <bug-34422-11613@https.bugzilla.kernel.org/> (raw)

https://bugzilla.kernel.org/show_bug.cgi?id=34422

           Summary: Error-valued pointers used in pointer arithmetic in
                    SCSI
           Product: SCSI Drivers
           Version: 2.5
    Kernel Version: 2.6.38.3
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Other
        AssignedTo: scsi_drivers-other@kernel-bugs.osdl.org
        ReportedBy: crubio@cs.wisc.edu
        Regression: No


Created an attachment (id=56582)
 --> (https://bugzilla.kernel.org/attachment.cgi?id=56582)
Complete sample traces and slices describing bad pointer arithmetic in SCSI

We have statically analyzed SCSI, VFS and the memory management module to
find error-valued pointers that are used in pointer arithmetic. We have found
12 instances:

include/linux/mm.h:389: Using variable virt_to_head_page#x in pointer
arithmetic, which may contain one of the following error codes: ENOMEM* 

m/slub.c:251: Using variable check_valid_pointer#object in pointer arithmetic,
which may contain one of the following error codes: ENOMEM* 

mm/slub.c:358: Using variable get_track#object in pointer arithmetic, which may
contain one of the following error codes: ENOMEM* 

mm/slub.c:360: Using variable get_track#object in pointer arithmetic, which may
contain one of the following error codes: ENOMEM* 

mm/slub.c:452: Using variable print_trailer#p in pointer arithmetic, which may
contain one of the following error codes: ENOMEM*

mm/slub.c:457: Using variable print_trailer#p in pointer arithmetic, which may
contain one of the following error codes: ENOMEM* 

mm/slub.c:470: Using variable print_trailer#p in pointer arithmetic, which may
contain one of the following error codes: ENOMEM*

m/slub.c:505: Using variable init_object#p in pointer arithmetic, which may
contain one of the following error codes: ENOMEM* 

mm/slub.c:537: Using variable check_bytes_and_report#start in pointer
arithmetic, which may contain one of the following error codes: ENOMEM*

mm/slub.c:603: Using variable check_pad_bytes#p in pointer arithmetic, which
may contain one of the following error codes: ENOMEM* 

mm/slub.c:643: Using variable check_object#object in pointer arithmetic, which
may contain one of the following error codes: ENOMEM* 

mm/slub.c:657: Using variable check_object#p in pointer arithmetic, which may
contain one of the following error codes: ENOMEM* 

For each case above, our tool produces a complete sample trace and a
corresponding slice. The complete sample trace illustrates how one error code
may reach the program point at which the error-valued pointer is used in
pointer arithmetic. The slice summarizes the complete sample trace by
including only relevant program points at which the error code is transferred
from variable to variable or returned by a function. Sample traces and slices
are attached.

All cases seem to be related: the error originates in the memory management
module, then it is propagated through VFS code (where there are some error
checks), SCSI code, and finally back to the memory management module where the
bad pointer arithmetic occurs (see sample traces). These bad pointer arithmetic
instances are reported only when analyzing SCSI code (and not any file system
implementation).

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.

             reply	other threads:[~2011-05-04 14:22 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-04 14:22 bugzilla-daemon [this message]
2014-06-25 15:50 ` [Bug 34422] Error-valued pointers used in pointer arithmetic in SCSI bugzilla-daemon

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=bug-34422-11613@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@bugzilla.kernel.org \
    --cc=linux-scsi@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;
as well as URLs for NNTP newsgroup(s).