NetBSD Problem Report #47463

From msaitoh@execsw.org  Fri Jan 18 02:18:48 2013
Return-Path: <msaitoh@execsw.org>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
	by www.NetBSD.org (Postfix) with ESMTP id 2378C63E933
	for <gnats-bugs@gnats.NetBSD.org>; Fri, 18 Jan 2013 02:18:48 +0000 (UTC)
Message-Id: <20130118021845.4997943985B@vslock.execsw.org>
Date: Fri, 18 Jan 2013 11:18:45 +0900 (JST)
From: msaitoh@execsw.org
Reply-To: msaitoh@execsw.org
To: gnats-bugs@gnats.NetBSD.org
Subject: ARM's disksubr_mbr.c is broken for non MBR disk.
X-Send-Pr-Version: 3.95

>Number:         47463
>Category:       port-arm
>Synopsis:       ARM's disksubr_mbr.c is broken for non MBR disk.
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    msaitoh
>State:          feedback
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jan 18 02:20:00 +0000 2013
>Closed-Date:    
>Last-Modified:  Sun Feb 15 15:40:00 +0000 2015
>Originator:     SAITOH Masanobu
>Release:        6.0
>Organization:
>Environment:
arm ports which uses arm/arm/disksubr_mbr.c
>Description:
	 Many ARM ports use their own function in arm/arm/disksubr_mbr.c
	to check MBR partition table instead of kern/subr_disk_mbr.c.
	It's hard to know perfectly whether the first sector is the MBR
	or normal boot sector but MI subr_disk_mbr.c is not so bad.
	For ARM dissubr_mbr.c, it's very poor to check whether the first
	sector is MBR or not. It checks only whether the last two bytes
	(offset 0x1fe - 0x1ff) has the magic number.

	  We should check each partition table like MI subr_disk_mbr.c
	 or switch to use it.
>How-To-Repeat:
	Inset USB FLASH memory which hash no MBR and use disklabel.
>Fix:
	Sync with kern/subr_disk_mbr.c or switch to use kern/subr_disk_mbr.c

>Release-Note:

>Audit-Trail:
From: Masanobu SAITOH <msaitoh@execsw.org>
To: gnats-bugs@NetBSD.org
Cc: port-arm-maintainer@netbsd.org, gnats-admin@netbsd.org, 
 netbsd-bugs@netbsd.org, msaitoh@execsw.org
Subject: Re: port-arm/47463: ARM's disksubr_mbr.c is broken for non MBR disk.
Date: Fri, 18 Jan 2013 11:33:57 +0900

 Bad Example:
 > # disklabel sd0
 > # /dev/rsd0c:
 > type: SCSI
 > disk: USB2FlashStorage
 > label: fictitious-MBR
 > flags: removable
 > bytes/sector: 512
 > sectors/track: 32
 > tracks/cylinder: 8
 > sectors/cylinder: 256
 > cylinders: 500
 > total sectors: 15794176
 > rpm: 3600
 > interleave: 1
 > trackskew: 0
 > cylinderskew: 0
 > headswitch: 0           # microseconds
 > track-to-track seek: 0  # microseconds
 > drivedata: 0
 > 
 > 8 partitions:
 > #        size    offset     fstype [fsize bsize cpg/sgs]
 >  c:  15794176         0     unused      0     0        # (Cyl.      0 -  61695)
 >  e: 1851859059 1936028272    unknown                     # (Cyl. 7562610+- 14796434+)
 >  f: 538976288 1330184192    unknown                     # (Cyl. 5196032+- 7301408+)
 >  g: 1398362912 538989391    unknown                     # (Cyl. 2105427+- 7567782+)
 >  h:     21337 1394627663    unknown                     # (Cyl. 5447764+- 5447847+)
 > disklabel: boot block size 0
 > disklabel: super block size 0
 > disklabel: partition e: offset past end of unit
 > disklabel: partition e: partition extends past end of unit
 > disklabel: partitions e and g overlap
 > disklabel: partition f: offset past end of unit
 > disklabel: partition f: partition extends past end of unit
 > disklabel: partitions f and g overlap
 > disklabel: partitions f and h overlap
 > disklabel: partition g: offset past end of unit
 > disklabel: partition g: partition extends past end of unit
 > disklabel: partitions g and h overlap
 > disklabel: partition h: offset past end of unit
 > disklabel: partition h: partition extends past end of unit
 > #



 -- 
 -----------------------------------------------
                 SAITOH Masanobu (msaitoh@execsw.org
                                  msaitoh@netbsd.org)

From: "SAITOH Masanobu" <msaitoh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/47463 CVS commit: src/sys/arch/arm/arm
Date: Fri, 18 Jan 2013 02:46:31 +0000

 Module Name:	src
 Committed By:	msaitoh
 Date:		Fri Jan 18 02:46:31 UTC 2013

 Modified Files:
 	src/sys/arch/arm/arm: disksubr_mbr.c

 Log Message:
 PR#47463:
  - Check each mbrp_type field in fdisk partition table in MBR to know whether
    a sector is really MBR or not. Same as MI subr_disk_mbr.c
  - Check whether each number in a partition table is out of bound or not.
    Same as MI subr_disk_mbr.c
  - Update d_packname and d_npartitions if we found any partitions.
  - Currently, the exended partitions is not supported...


 To generate a diff of this commit:
 cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/arm/disksubr_mbr.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

Responsible-Changed-From-To: port-arm-maintainer->msaitoh
Responsible-Changed-By: msaitoh@NetBSD.org
Responsible-Changed-When: Fri, 18 Jan 2013 02:53:13 +0000
Responsible-Changed-Why:
Mine.


State-Changed-From-To: open->analyzed
State-Changed-By: msaitoh@NetBSD.org
State-Changed-When: Fri, 18 Jan 2013 02:53:13 +0000
State-Changed-Why:
I know.


From: "Jeff Rizzo" <riz@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/47463 CVS commit: [netbsd-6] src/sys/arch/arm/arm
Date: Sun, 10 Feb 2013 20:17:23 +0000

 Module Name:	src
 Committed By:	riz
 Date:		Sun Feb 10 20:17:23 UTC 2013

 Modified Files:
 	src/sys/arch/arm/arm [netbsd-6]: disksubr_mbr.c

 Log Message:
 Pull up following revision(s) (requested by msaitoh in ticket #804):
 	sys/arch/arm/arm/disksubr_mbr.c: revision 1.15
 Change for non MBR disk (PR#47463):
   - Check each mbrp_type field in fdisk partition table in MBR to know whether
     a sector is really MBR or not. Same as MI subr_disk_mbr.c
   - Check whether each number in a partition table is out of bound or not.
     Same as MI subr_disk_mbr.c
   - Update d_packname and d_npartitions if we found any partitions.
   - Currently, the exended partitions is not supported...


 To generate a diff of this commit:
 cvs rdiff -u -r1.13.4.1 -r1.13.4.2 src/sys/arch/arm/arm/disksubr_mbr.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: analyzed->feedback
State-Changed-By: martin@NetBSD.org
State-Changed-When: Fri, 23 Jan 2015 19:28:13 +0000
State-Changed-Why:
This is fixed, isn't it?


From: Joerg Sonnenberger <joerg@britannica.bec.de>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: port-arm/47463 (ARM's disksubr_mbr.c is broken for non MBR disk.)
Date: Fri, 23 Jan 2015 20:50:59 +0100

 On Fri, Jan 23, 2015 at 07:28:13PM +0000, martin@NetBSD.org wrote:
 > Synopsis: ARM's disksubr_mbr.c is broken for non MBR disk.
 > 
 > State-Changed-From-To: analyzed->feedback
 > State-Changed-By: martin@NetBSD.org
 > State-Changed-When: Fri, 23 Jan 2015 19:28:13 +0000
 > State-Changed-Why:
 > This is fixed, isn't it?

 acorn26 and acorn32 still use it, all other ARM ports use the generic
 version.

 Joerg

From: David Holland <dholland-bugs@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: port-arm/47463 (ARM's disksubr_mbr.c is broken for non MBR disk.)
Date: Sat, 14 Feb 2015 10:49:15 +0000

 On Fri, Jan 23, 2015 at 07:55:01PM +0000, Joerg Sonnenberger wrote:
  >  On Fri, Jan 23, 2015 at 07:28:13PM +0000, martin@NetBSD.org wrote:
  >  > Synopsis: ARM's disksubr_mbr.c is broken for non MBR disk.
  >  > 
  >  > State-Changed-From-To: analyzed->feedback
  >  > State-Changed-By: martin@NetBSD.org
  >  > State-Changed-When: Fri, 23 Jan 2015 19:28:13 +0000
  >  > State-Changed-Why:
  >  > This is fixed, isn't it?
  >  
  >  acorn26 and acorn32 still use it, all other ARM ports use the generic
  >  version.

 I think the question was whether the changes to it already made fix
 the problem.

 -- 
 David A. Holland
 dholland@netbsd.org

From: Joerg Sonnenberger <joerg@britannica.bec.de>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: port-arm/47463 (ARM's disksubr_mbr.c is broken for non MBR disk.)
Date: Sun, 15 Feb 2015 16:36:41 +0100

 On Sat, Feb 14, 2015 at 10:50:01AM +0000, David Holland wrote:
 > The following reply was made to PR port-arm/47463; it has been noted by GNATS.
 > 
 > From: David Holland <dholland-bugs@netbsd.org>
 > To: gnats-bugs@NetBSD.org
 > Cc: 
 > Subject: Re: port-arm/47463 (ARM's disksubr_mbr.c is broken for non MBR disk.)
 > Date: Sat, 14 Feb 2015 10:49:15 +0000
 > 
 >  On Fri, Jan 23, 2015 at 07:55:01PM +0000, Joerg Sonnenberger wrote:
 >   >  On Fri, Jan 23, 2015 at 07:28:13PM +0000, martin@NetBSD.org wrote:
 >   >  > Synopsis: ARM's disksubr_mbr.c is broken for non MBR disk.
 >   >  > 
 >   >  > State-Changed-From-To: analyzed->feedback
 >   >  > State-Changed-By: martin@NetBSD.org
 >   >  > State-Changed-When: Fri, 23 Jan 2015 19:28:13 +0000
 >   >  > State-Changed-Why:
 >   >  > This is fixed, isn't it?
 >   >  
 >   >  acorn26 and acorn32 still use it, all other ARM ports use the generic
 >   >  version.
 >  
 >  I think the question was whether the changes to it already made fix
 >  the problem.

 It fixes the problems I have seen.

 Joerg

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2014 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.